我得到的常見錯誤:阻止加載特定DLL在IIS
無法加載文件或程序集「...」或它的一個依賴。找不到指定的模塊 。
問題是這個DLL引用非託管DLL,所以它永遠不能正確加載。我只想讓IIS忽略這個文件。
我正在玩web.config中的<remove assembly>
標籤,但沒有運氣。
有關如何防止我的一個DLL加載的任何建議?
我得到的常見錯誤:阻止加載特定DLL在IIS
無法加載文件或程序集「...」或它的一個依賴。找不到指定的模塊 。
問題是這個DLL引用非託管DLL,所以它永遠不能正確加載。我只想讓IIS忽略這個文件。
我正在玩web.config中的<remove assembly>
標籤,但沒有運氣。
有關如何防止我的一個DLL加載的任何建議?
即使我不能想出一個辦法來限制特定組裝,我可以通過移除所有組件並添加我需要的特定組件來完成它。改變的web.config文件:
<system.web>
<compilation targetFramework="4.0">
<assemblies>
<remove assembly="*"/>
<add assembly="example.dll"/>
</assemblies>
</compilation>
</system.web>
.Net運行時無法加載程序集以獲得樂趣。它只在需要時纔會這樣做 - 即您正在使用該程序集中的類/方法。只要沒有執行使用它們的代碼,您甚至可能會引用不存在的程序集。
因此,防止程序集加載不會使您的應用程序正常工作 - 即刪除程序集並查看您的應用程序是否因缺少依賴關係而崩潰。
如果是自己裝組件以某種方式(如Assembly.Load)比你需要弄清楚如何跳過此類組件...
這解決了我無法「後期加載」DLL的問題。所有你需要做的就是刪除所有你想做的事,並將Web項目DLL添加到列表中。這將使項目運行,並且您可以在Global.asax中的Application_Start中實現自己的程序集加載,以加載所需的其餘DLL。有了你自己的加載器,你可以自己處理錯誤或忽略它。甚至可能解決bin文件夾內的本地DLL問題。只需將Application_Start中的PATH環境變量設置爲bin文件夾並開始加載其餘的DLL即可。 – Wolf5 2014-03-31 16:42:34