Cum să obțineți DLL-uri vechi care rulează pe un server de 64 de biți (Administrarea sistemului, Iis 7, Iis 7.5, Grupuri De Aplicații, 32Bit 64Bit)

quakkels a intrebat.

Mut site-urile web ale companiei mele de pe un server Windows 2003×86 pe un server Windows 2008×64 care rulează IIS 7.5.

Problema pe care o am este că toate DLL-urile care rulau bine pe vechiul server, acum dau eroare de fiecare dată când sunt apelate. Tot ce primesc este o eroare generică de genul:

Server object error ‘ASP 0177 : 800401f3’.

Server.CreateObject Failed

/folder/scriptname.asp, linia 24

800401f3

Linia care dă eroare este:

'23 lines of comments  
set A0SQL_DATA = server.createobject("olddllname.Data")  
'the rest of the script 

Am deja acel site care rulează într-un App Pool care este setat la modul 32bit. Dar, primesc eroarea oricum.

A experimentat cineva acest lucru? Sunt frustrat pentru că toate informațiile pe care le caut spun că tot ce trebuie să fac este să setez app pool-ul pentru a rula în modul 32bit. Am făcut asta și tot nu funcționează.Ce altceva aș putea verifica?

Comentarii

  • duplicat al serverfault.com/questions/151876/…, deși acesta este mai bine formulat –  > Por Holocryptic.
  • Este un dupe, dar cum acesta este mai bine formulat, am votat pentru a închide 151876. –  > Por John Gardeniers.
  • Îmi pare rău că este o dublură. Are cineva sugestii despre cum să rezolve problema? –  > Por quakkels.
2 răspunsuri
Holocryptic

Adus de la aici dacă am găsit asta:

Această eroare înseamnă „Invalid classstring” – cu alte cuvinte, apelul laCreateObject a eșuat deoarece numele obiectului nu poate fi găsit de către sistemul OLEsub. Cauzele includ:

Chiar nu ați rulat regsvr32 pe server până la urmă.

Ați rulat regsvr32 dar a raportat o eroare.

Cineva a modificat securitatea unei părți a registrului, ceea ce împiedică subsistemul OLE să citească tot sau o parte din arboreleHKEY_CLASSES_ROOT.

Numele obiectului pe care încercați să-l creați a fost scris greșit sau este incorect.

Determinați dacă este vorba de o problemă de permisiune

De asemenea, din moment ce migrați de la 03 la 08, ați instalat add-on-ul IIS 6 Management Compatibility care se găsește în rolul IIS? Nu sunt un expert în IIS sau ASP, așa că sper că vă sunt de ajutor.

Comentarii

  • Mulțumesc pentru informații. Voi cerceta acele cauze pe care le-ați menționat. –  > Por quakkels.
Carlos Aguilar Mares

Ceea ce se întâmplă probabil este că DLL-ul dvs. este un DLL pe 32 de biți, iar Application Pools rulează pe 64 de biți. Ceea ce va trebui să faceți este să schimbați Pool-ul de aplicații în care se execută aplicația dvs. pentru a fi un pool de aplicații pe 32 de biți. Consultați enable32BitAppOnWin64 la: http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add

Puteți face acest lucru în interfața de utilizare selectând Application Pool în lista AppPools (selectați nodul Tree) și utilizați Advanced Settings (Setări avansate) pentru a activa acest lucru.