WCF:无法加载文件或程序集...系统找不到指定的文件

时间:2011-08-09 08:48:29

标签: wcf iis .net-3.5 svc

我在IIS 6/7中托管了一个WCF服务。我用.svc文件尝试了不同的东西,但我无法让它工作。我总是得到一个FileNotFoundException“无法加载文件或程序集'X.Y.Z'或其中一个依赖项。系统找不到指定的文件。”

程序集位于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" %>

3 个答案:

答案 0 :(得分:0)

使用程序集绑定日志查看器查看clr正在查看请求程序集的位置 - http://msdn.microsoft.com/en-us/library/e74a18c4(v=VS.100).aspx

答案 1 :(得分: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);

答案 2 :(得分:0)

此WCF是否有任何第三方库引用,这要求应用程序池为32位版本还是64位版本?验证应用程序池设置为经典,适当集成