自托管WCF和System.ServiceModel.FaultException
本文关键字:System ServiceModel FaultException WCF | 更新日期: 2023-09-27 18:00:23
我有一个简单的WCF服务库项目(称为项目W),在目录X中有几个DLL。我将W的启动目录设置为X,所有方法都可以在Visual Studio 2010中使用WcfServiceHost正常工作。
我想自己托管W,所以,我创建了一个控制台项目(称为项目C),添加了对W的引用,将W的启动目录设置为X,然后基本上有以下几行代码
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都很陌生,任何提示都会被赞赏。
您可以订阅事件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;
}
您需要确定此错误是在服务中还是在客户端中。
从错误消息来看,这似乎是一个服务端错误。您可以从实现IErrorHandlerhttp://msdn.microsoft.com/en-us/library/gg281715.aspx.
这将使您能够访问服务中的所有错误。然后,您可以记录所有异常及其内部异常。
希望这能有所帮助。