我有一个简单的WCF服务库项目(称为Project W),在目录X中有一些DLL。我将W的启动目录设置为X,所有方法在Visual Studio 2010中使用WcfServiceHost正常工作。
我想自托管W,所以,我创建了一个控制台Project(称之为Project C),添加了对W的引用,将W的启动目录设置为X,然后基本上有以下主要代码行< / p>
var host = new ServiceHost(typeof(EvalService));
host.Open();
当我现在在W中测试方法时,我得到System.ServiceModel.FaultException
{"The specified module could not be found. (Exception from HRESULT: 0x8007007E)"}
。
这意味着什么?如何判断它要加载的模块?
我对C#和WCF都很新,任何提示都会得到赞赏。
答案 0 :(得分:0)
您可以订阅事件AppDomain.AssemblyResolve并在调试器中查看哪个程序集有问题。
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += OnAssemblyResolve;
...
private static Assembly OnAssemblyResolve(object sender, ResolveEventArgs args)
{
Console.WriteLine(args.RequestingAssembly); //set breakpoint there
return null;
}
答案 1 :(得分:0)
您需要确定此错误是在服务还是客户端中。
从错误消息看,这似乎是服务端错误。您可以从http://msdn.microsoft.com/en-us/library/gg281715.aspx实现IErrorHandler。
这样您就可以访问服务中的所有错误。然后,您可以记录所有异常及其内部异常。
希望这会有所帮助。