2011-11-18 82 views
2

我有一个WCF服务的Web应用程序项目。如何捕获WCF服务激活异常?

当我运行我的Web项目的Visual Studio 2010下使用调试ASP开发服务器,使用Debug->Options->Break,当CLR exception thrown检查和Enable Just my code选中,我能赶上ServiceActivationException与细节的解释时,我的WCF服务没有启动,这也为例外使用WCF跟踪记录。

但是我还没有找到一种方法来在代码中捕获这个异常。如何捕捉它?

回答

0

如果通过“代码”你的意思只是陷阱的例外记录,然后尝试看看implementing IErrorHandler会为你工作。另一个选项可能是custom service host,但如果这样做不行,那么你几乎没有把它从Visual Studio调试器中剔除出去。当你的服务实例被初始化时,这个异常发生在WCF框架中。您的代码不可能将其捕获,因为它发生在您的服务代码运行之前。

+0

非常罕见的是,这样一个重要的异常不能处理未处理的异常事件处理程序,并且在内部某处处于无声处理状态。 –

+0

这是关于WCF初始化序列中发生异常的地方。如果IErrorHandler实现没有捕获它,那么它会在加载任何自定义扩展之前发生。您是否尝试过自定义ServiceHost选项? –