Frage

Im Grunde denke ich, das ein Fehler in Windows Server 2008 ist, aber ich bin keine COM ninja so ist es ebenso wahrscheinlich scheint, dass ich tue nur etwas dumm. Die Frage ist:? Fehler oder Programmierfehler

Wir verwenden WinHttpRequest (die ActiveX-Komponente von WinHttp) http zu lesen: // und https: //. Die ProgID wir werden mit der Komponente zu sehen ist WinHttp.WinHttpRequest.5.1.

Unsere Anwendung hat gut funktioniert auf XP und Windows Server 2003 unter Windows Server 2008 haben wir einen Fehler erhalten würden (0x800029C4A "Error loading type library/DLL") die Typbibliothek zu laden. Re-Registrierung winhttp das Problem behebt. Die Frage ist, warum?

Nach zahlreichen Sackgassen, fand ich die folgenden in der Registrierung.

Windows 2008 Server SP2 als installiert:

Name=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{662901FC-6951-4854-9EB2-D9A2570F2B2E}\5.1\0\win32=%SystemRoot%\system32\winhttp.dll
Type=REG_SZ
Data=%SystemRoot%\system32\winhttp.dll

Nach regsvr32 %SystemRoot%\System32\WinHttp.dll Aufruf dieser Taste ändert Wert:

Name=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{662901FC-6951-4854-9EB2-D9A2570F2B2E}\5.1\0\win32
Type=REG_SZ
Data=C:\Windows\system32\winhttp.dll

Mein Verständnis ist, dass die Schlüssel vom Typ REG_EXPAND_SZ Systempfade wie %SystemRoot% erweitern aber REG_SZ nicht. Also entweder der Typ sollte REG_EXPAND_SZ oder der erweiterte Pfad sollte verwendet werden. Re-Registrierung WinHttp behebt den Pfad und fixiert somit WinHttpRequest. (Soweit ich das beurteilen kann, verwendet XP C:\Windows\System32\winhttp.dll und Server 2003 verwendet eine SxS installieren, das funktioniert für mich> 0

Also ich denke, das ist ein Fehler, und ich legte einen Fehler mit Microsoft (oder zumindest so viel wie ich aus dem Sumpf tun könnte, die connect.microsoft.com ist.) Aber hier ist der Teil ich nicht bekommen: da Windows Server 2008 und Vista sehr ähnlich ist, scheint es wahrscheinlich, dass dieses Problem auch in Vista vorhanden ist. WinHttpRequest hat bekam ein häufig verwendetes Objekt. Die Massen schreien werden sollen, aber nach vielen Googeln fand ich nur ein Thread, wo die Menschen dieses Problem angetroffen werden.

Neuregistrierung winhttp behebt das Problem, so dass das, was wir tun. Ich bin das, weil ein Posting) Ich kann einfach nicht glauben, dass es am besten Praxis ist diese häufig verwendete Komponente und b) erneut zu registrieren, wenn es einen Fehler, vielleicht wird dies jemand anders helfen.

-ROB

War es hilfreich?

Lösung

Ja, wird dies aus um einen Fehler in Manifest von W2K8 sein, aber nicht unbedingt das Manifest für Vista. Microsoft scheint sich dieses Problems bewusst zu sein und Microsoft sollte dies in der nächsten Version beheben können. Aktuelle Arbeit um für WinHTTP sowie ServerXmlHttp ist, um manuell die COM-Komponente zu registrieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top