2011-08-09 30 views
1

我有IIS 6/7託管的WCF服務。我用.svc文件嘗試了不同的東西,但是我無法使其工作。我總是得到一個FileNotFoundException「無法加載文件或程序集'X.Y.Z'或它的一個依賴項,系統找不到指定的文件。」WCF:無法加載文件或程序集...系統找不到指定的文件

程序集位於bin文件夾中,不在GAC中。但是X.Y.Z是命名空間和類名,所以服務器正在尋找錯誤的程序集文件名。程序集加載跟蹤證實,它正在各個地方尋找X.Y.Z.DLL,但該名稱空間和類名...... X.Y.DLL將是程序集。

我嘗試了SVC,產生的Visual Studio 2010和我修改它僅包含完全合格的名稱

<%@ ServiceHost Service="X.Y.Z, X.Y, Version=1.0.2.0, Culture=neutral, PublicKeyToken=xxxxx" %> 

回答

0

使用程序集綁定日誌查看器來看到CLR正在看所要求的位置組裝 - http://msdn.microsoft.com/en-us/library/e74a18c4(v=VS.100).aspx

+0

我已經有綁定日誌,它正在查看正確的位置,但對於錯誤的文件(XYZDLL)... – Turrau

+0

您清除了網站的aspnet緩存在框架目錄下? –

+0

不,以前從未這樣做過,這是要走的路:http://www.aspdotnetfaq.com/Faq/How-to-clear-your-ASP-NET-applications-Cache.aspx ??? – Turrau

0

錯誤信息可能會引起誤解。嘗試在同一個項目中創建一個測試頁面,並從類型名稱中創建一個服務類的實例。當您導航到此測試頁面時,它應該提供有關哪些程序集無法找到的正確錯誤消息。您可以使用以下代碼,例如



    Type serviceType = Type.GetType("X.Y.Z, X.Y, Version=1.0.2.0, Culture=neutral, PublicKeyToken=xxxxx");
var serviceInstance = Activator.CreateInstance(serviceType);
Response.Write(serviceInstance);
+0

好主意,我會試試這個 – Turrau

0

此WCF是否有任何第三方庫引用,它要求Applicatin Pool是32位版本還是64位版本?驗證AppPool設置爲經典,集成爲適當的

相關問題