2014-01-09 58 views
0

我正在使用c#web服務中的32位本機DLL。一切工作正常在VS本地與IIS快遞。但是,當我將站點部署到IIS託管提供程序(IIS 7)時,對DLL的調用(使用平臺調用)不起作用(沒有錯誤,甚至沒有從調用返回並且Web服務突然終止)。但是,通過PageMethod錯誤函數通知客戶端:「無法加載DLL訪問被拒絕(來自HRESULT的異常:0x80070005(E_ACCESSDENIED))」如何在部署的網站中使用本機DLL(IIS 7)

由於提供程序IIS運行64位模式,因此我要求它們將我的進程更改爲32位,但是這沒有任何區別。 我是否需要在IIS 7上使用任何特殊的原生DLL?在使用服務器之前,是否必須先向服務器註冊本機模塊?任何有關調用DLL時的奇怪行爲的解釋?

感謝

回答

0

您可能已經搜查,但現在看來,這個問題已經被問:請參見SO Question在這裏,但它歸結到其在正確的地方的DLL和設置PATH變量。

+0

感謝您的回覆。我的本地DLL位於/ bin文件夾中。我曾嘗試通過指定完整路徑來加載DLL,但這並沒有幫助。奇怪的是,即使我刪除了DLL,我也沒有收到任何錯誤。我在調用導入的DLL函數之前和之後立即放置調試日誌,日誌表明它已到達調用之前的位置,但從未調用此位置之後的點和Web服務終止,但客戶端通過PageMethod進行通知錯誤函數:「無法加載DLL訪問被拒絕(來自HRESULT的異常:0x80070005(E_ACCESSDENIED))」 – user2852294