自托管WCF和System.ServiceModel.FaultException

时间:2013-02-21 18:58:47

标签: c# wcf self-hosting faultexception

我有一个简单的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都很新,任何提示都会得到赞赏。

2 个答案:

答案 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。

这样您就可以访问服务中的所有错误。然后,您可以记录所有异常及其内部异常。

希望这会有所帮助。