![]() |
Jag har ett jobbigt problem med en komponent på en webbserver. Jag kan inte få den att fungera med ASP-sidorna, jag får bara
Server object error 'ASP 0177 : 800401f3' Server.CreateObject Failed /index.asp, line 35 Invalid ProgID hela tiden. Komponenten ÄR registrerad, och det är rätt rättigheter på filen. Jag har provat massor med olika komponenter för samma ändåmål utan att lyckas. Jag har kört samma komponent och kod (nej, det är inget fel i koden såsom felstavat progid etc) på en annan webbserver utan problem. Hur kan jag lösa detta? Det är en win2k server med IIS det gäller (IIS4 tror jag). Mvh Magnu W |
Du kan ju kolla registryt hur komponenten är registrerad...
Ibland händer det att komponenter inte reggar sig korrekt (de är felimplementerade) och då kan det lösa sig genom att skapa den med "CrapCompany.CrapyObject.1" istf "CrapCompany.CrapyObject". Ettan är ett versionsnummer som är komponentens egentliga namn. Och det kanske saknas ett alias som pekar namnet utan versionsnummer på rätt version. Version kan ju även vara något annat än en etta, men det bör vara ett heltal iaf. |
Hmm oki, men samma komponent har funkat fint på en annan server. Jag kollade i registryt och det finns en key som heter "progid" på den komponenten och där står det "CrapCompany.CrapClass.1", men det funkade inte att lägga till .1 i ASP-koden iaf, samma fel.
Mvh Magnus W |
Citat:
Jag skulle testa att göra ett VB program som använde komponenten och se om det funkar från den. Allt för att testa rättighetsproblem och korrekt registrering. |
Jag har kört testscript med ASP som säger den är registrerad. VB har jag inte installerat tyvärr. Vad skulle kunna få datorn att säga den är registrerad med regsvr32 men att den i själva verket inte blir det då? Hur kan en sådan registrering gå fel, för det är nog ngt sådant fel då jag provat 2 olika komponenter och ingen fungerar, även fast den säger dom är reggade.
Låt oss säga att ett VB program påstår dom inte är reggade, vad gör jag då? Jag kan ju inte mer än skriva regsvr32 om och om igen. Och om det funkar i VB, vad kan vara fel då? Mvh Magnus W |
regsvr32 är inget magiskt program utan bara en wrapper som kör en specifik funktion i en DLL. Denna funktion bör lägga in "rätt" saker i registryt för att komponenten skall vara "registrerad". Således är det fullt möjligt att göra en "komponent" som när den "registreras" gör i princip vad som helst. Skulle kunne göra riktigt elaka trojaner på detta sätt t.ex.
Så att "regsvr32" säger att komponenten är registrerad betyder bara att koden som körs tycker att alla nycklar finns på rätt ställe. Detta betyder ju inte att det funkar, t.ex. om någon annan komponent (gud förbjude) skulle använda samma GUID eller samma progID (men en senare version). Nåväl, med ett VB program skulle du t.ex. få svar på det där med rättigheter. Funkar det i VB är det antagligen rättigheterna det är fel på (eftersom VB programmet antagligen kör med dig, dvs admin som user, medan IISen har en annan användare). Om det inte funkar i VB så är sannolikt komponenten felaktigt installerad på något sätt. Och det kan ju finnas tusen olika orsaker. Allt ifrån att du har ett trasigt registry, felaktiga rättigheter osv. Jag hoppas att du testat att avregistrera komponenten och sedan registrera den igen - allt med IIS avstängd? Annars får du nog googla på felet & vad det är för komponent. Kan kanske ge något. Eftersom det funkar på andra servrar är det sannolikt bara något installationsfel så slå av allt, avregistrera, kolla registryt att allt är borta. Flytta alla gamla filer till en ny katalog och registrera allt igen. |
Suck...
Fick tipset att installera Windows Scripting Host och nu fattar inte servern vad ASP är ens. "Invalid default scripting language" även fast det står VBScript överallt. Verkar inte att få bort det heller så jag åtminstone kan köra ASP igen. Mvh Magnus W |
Alla tider är GMT +2. Klockan är nu 15:23. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson