在启动时验证WCF服务

时间:2011-01-25 16:54:00

标签: c# iis wcf

拥有一个托管在IIS中的WCF服务,我想验证配置设置是否有效,例如:日志记录目录存在或可以创建。如果配置失败,我想认为服务无效,并通过事件日志等通知。理想情况下,如果无效,服务将不可用。

如果我作为Windows服务托管,我可以轻松地做到这一点。但是在IIS中托管?我不知道从代码中获取服务的好方法。

有什么想法吗?如果有帮助,WCF服务将在其自己的应用程序池中运行。

TIA! 詹姆斯

3 个答案:

答案 0 :(得分:2)

如果您抛出异常,该服务将无法使用。所以在你的服务的构造函数中做你的检查,如果一切都很完美,如果它没有抛出异常,服务将不在那里。如果远程错误已关闭,则浏览到该服务将显示错误和堆栈跟踪。

答案 1 :(得分:2)

其他海报建议您从服务的构造函数中抛出。这种方法可以正常工作,但可能更好的方法是实现自定义ServiceHostFactory(http://msdn.microsoft.com/en-us/library/aa702697.aspx)并在CreateServiceHost方法中进行验证。这样做的好处是,您的验证错误将成为“服务无法激活”错误报告的一部分。 HTML页面。

答案 2 :(得分:0)

如果loggigng目录不存在或无法创建等,则在名为test的服务中有一个私有方法将返回布尔值false。

从服务的构造函数中调用此测试方法。如果方法返回false,则发送服务已关闭的明确信息。