1

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

该程序集位于 bin 文件夹中,而不是 GAC 中。但是 XYZ 是命名空间和类名,因此服务器正在寻找错误的程序集文件名。程序集加载跟踪确认,它正在各个地方寻找 XYZDLL,但名称空间和类名 ... XYDLL 将是程序集。

我尝试了生成 Visual Studio 2010 的 svc,并将其修改为仅包含完全限定名称

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

3 回答 3

0

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

于 2015-02-13T10:54:13.040 回答
0

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

于 2011-08-09T10:10:41.187 回答
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);
于 2011-08-09T15:27:00.320 回答