在我的同事繼續工作之後,我繼承了一個項目。我有一個用於偵聽器服務的C#項目,將由基於雲的應用程序向我們發送請求和數據調用。所有的測試都能在dev中正常工作,當我在IIS 2008 R2上部署應用程序時會出現問題。編譯器錯誤CS0246偵聽器服務IIS 2008 R2
在Visual Studio中的項目中設置的目標框架是.Net Framework 4.5。
包含已編譯應用程序的IIS上的虛擬目錄位於使用'.Net Framework v4.0.30319'的應用程序池內。從我的研究中我已經看到,這個Framework版本應該可以與爲v4.5部署的所有應用程序一起工作。
虛擬目錄包含用於偵聽器服務的asmx文件,Web.Config文件和包含所有二進制文件的bin目錄。
當我調用ASMX文件在IE中,我得到了以下錯誤:
編譯器錯誤信息:CS0246:類型或命名空間名稱「XXX」找不到(是否缺少using指令或程序集參考?)
參考XXX作爲使用語句列出,並位於同一項目的文件夾結構中。這並不是指向一個單獨的項目。我閱讀了以下Microsoft article,其中的所有內容似乎都是正確的。但是,最後的註釋表明,當爲.Net 4.5編譯DLL時,也可能會引發錯誤CS0246,然後將其複製到帶有Plattform 4.0目標的項目中。
有人可以確認上述應用程序池設置是否可以與爲.Net v4.5構建的應用程序一起工作,並建議爲什麼asmx文件無法在Web服務器上編譯?
'.Net Framework v4.0.30319'是.NET 4.0,4.5,4.5.1,4.5.2,4.6,4.6.1,4.6.2和4.7的基礎,所以是的,這是正確的。如果存在架構不匹配(x86與x64),也會發生此問題 –