IIS加載傳統ISAPI擴展和IIS模塊,兩者都使用具有相同名稱的DLL,但這些DLL不同(與不同版本的第三方鏈接)。到目前爲止,應該沒有問題,每個組件(擴展和模塊)駐留在它們自己的文件夾中,每個組件都有自己的DLL版本,但是當IIS啓動工作進程和擴展並且模塊被加載時,擴展會嘗試加載來自模塊文件夾的DLL。我檢查了模塊的代碼,發現使用影響整個過程的SetDllDirectory。瞧,這是問題,我說。在擺脫這個調用之後(用LoadLibraryEx替換符合我需要的DLL搜索標誌),問題依然存在。最後,我發現自己給這兩個DLL提供了獨特的名字,顯然(或不)解決了這個問題。但它不是乾淨優雅的解決方案。有沒有人有任何想法爲什麼IIS展示這樣一個奇怪的行爲?ISAPI擴展加載錯誤的DLL
運行Win2008,IIS7.5,ISAPI擴展 - 與.NET3.5第三方程序集鏈接的本機,C++,VC2010,IIS模塊 - 本地,C++,VS2010,上述有問題的DLL-C++/CLI。 一切都是64
好的,官方的MSDev響應:「在同一個進程中,你不能有兩個同名的」經典「DLL,除非它們被設計爲支持SxS」 – kreuzerkrieg 2012-07-17 07:50:37