2015-02-23 86 views
0

我最近從Winsock的改變時,這條線運行到然而WinHTTPRequest:WinHTTPRequest自動化錯誤(2147024769)

Set WinHttpReq = New WinHttpRequest 

我receieve的自動化錯誤:2147024769。

此代碼工作的Windows7/Windows Server 2008上正常,但是在Windows 2003失敗

這是不是被Windows Server 2003上找到了winhttp.dll一個問題嗎?

+0

這是一個「文件未找到」的錯誤代碼,無法找到它需要的DLL。使用SysInternals的進程監視器來查找缺少的DLL。 Fwiw,winhttp5.dll的下載在11年前被刪除。 – 2015-02-23 13:41:59

回答

1

請參閱Using WinHTTP as a Side-by-side Assembly如果您需要在Win2003 Server SP1或更高版本上使用WinHttp 5.1。可以在那裏找到示例清單,但要利用這些信息,您需要了解VB6應用程序中的清單使用。

+0

非常感謝,你幫我意識到我在生成清單文件時犯了一個錯誤。我在Win7機器上運行MMM(MakeMyManifest),我從來沒有意識到Win2003的winhttp.dll不在同一個位置。我已經刪除了依賴關係,現在它似乎工作。然而,這是正確的做法還是不好的做法? – dan983 2015-02-23 14:18:13

+0

我不確定你的意思是「刪除依賴項」。 winhttp.dll不可部署,但是是操作系統的一部分。所以你不應該嘗試使用像MMM這樣的工具來隔離它。如果您需要通過MMM在Win2003上使用winhttp.dll程序集,則應該創建一個自定義版本,其中可以在清單中包含程序集選擇節點。沒有公開發布的MMM版本可以做到這一點。 – Bob77 2015-02-23 15:34:32

+0

MMM根據我的應用程序的使用情況創建了一個依賴關係列表,當我將其更改爲WinHTTPRequest時,它將winHttp.dll與位置C:\ Windows \ System32 \ winhttp.dll一起包含在內。不包括這個依賴關係已經修復了我得到的自動化錯誤。 – dan983 2015-02-23 15:52:46