【问题标题】:Validating a WCF Service on startup在启动时验证 WCF 服务
【发布时间】:2011-01-25 16:54:00
【问题描述】:

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

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

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

TIA! 詹姆斯

【问题讨论】:

    标签: c# iis wcf


    【解决方案1】:

    如果您抛出异常,服务将不可用。所以在你的服务的构造函数中做你的检查,如果一切都是完美的,如果它没有抛出异常并且服务将不存在。如果远程错误关闭,则浏览服务将显示错误和堆栈跟踪。

    【讨论】:

    • 它的行为确实如此。仍在尝试弄清楚如何在客户端处理场景
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多