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



我在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" %>

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

错误消息可能会引起误解。尝试在同一项目中创建测试页,并根据类型名称创建服务类的实例。当您导航到此测试页面时,它应该给出正确的错误消息,说明它无法找到哪些程序集。您可以使用以下代码,例如


    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);

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

最新更新