2014-11-21 136 views
0

我已經用Dev-C++編譯了c本機32位DLL,在我的asp.net項目上創建了引用,編寫了dllImport指令並使用了我的新DLL。當啓動我的DEBUG會話時,所有工作都很好,但是當在Web服務器上部署我的項目時,運行時不加載我的DLL。32位DLL無法在64位服務器上工作C#

+0

我已經在我的服務器上的IIS 7.0下爲我的應用程序池啓用了32位應用程序設置。 有人知道這個問題的原因?我已經嘗試了一切:-( 幫助我!! – 2014-11-21 18:49:04

+0

dll是否正確部署到GAC? – 2014-11-21 18:50:58

+0

您是否爲該參考做了local = true的複製? – Rex 2014-11-21 19:02:08

回答

0

我的IIS 7.0 w3wp.exe作爲64位進程運行(檢查您的進程是否在WOW64下運行爲32位進程,打開任務管理器的進程選項卡並查看進程名是否包含「* 32」)。

我相信一個64位進程只能加載64位原生DLL(以及爲「任何CPU」或「X64」構建的受管DLL)。也許你的調試會話是32位會話?如果這是原因,請看Using a 32bit or 64bit dll in C# DllImport

+0

什麼都沒有......我已經重新編譯了dll的64位本地dll,但情況是一樣的,vero奇怪....有人有另一個建議!謝謝 – 2014-11-25 00:55:21

+0

我認爲你需要確定實際dllimport報告的錯誤,否則我們只是在猜測原因。原因可能是dll是錯誤的bit-ness,或者在IIS期望它或其他地方找不到它。 – sevzas 2014-11-25 13:02:54

相關問題