服务调试行为

ServiceDebug 示例演示如何配置服务调试行为设置。 此示例基于名为Getting Started的指南,并实现ICalculator服务协定。 此示例在配置文件中显式定义服务调试行为。 也可以在代码中命令性地完成。

在此示例中,客户端是一个控制台应用程序 (.exe),服务是由 Internet 信息服务 (IIS) 承载的。

注释

本示例的设置过程和生成说明位于本主题末尾。

服务器的 Web.config 文件定义服务调试行为,以启用帮助页和异常处理,如以下示例所示。

<behaviors>
     <serviceBehaviors>
         <behavior name="CalculatorServiceBehavior">
         <!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
         <!-- Please set this to false when deploying -->
             <serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
         </behavior>
     </serviceBehaviors>
</behaviors>

<serviceDebug> 是允许更改服务调试行为属性的配置元素。 用户可以修改此行为以实现以下目的:

  • 这允许服务返回应用程序代码引发的任何异常,即使未使用 </gt; 声明异常。 通过将 includeExceptionDetailInFaults 设置为 true。 当调试服务器引发意外异常的情况时,此设置非常有用。

    重要

    在生产环境中启用此设置并不安全。 意外的服务器异常可能包含一些不适合客户端的信息,因此将 includeExceptionDetailsInFaults 设置为 true 可能会导致信息泄漏。

  • serviceDebug<> 还允许用户启用或禁用帮助页。 每个服务可以选择公开一个帮助页,其中包含有关服务的信息,包括用于获取服务的 WSDL 的终结点。 可以通过将 httpHelpPageEnabled 设置为 true 来启用该功能。 这使得在服务基址接收到 GET 请求时能够返回帮助页。 可以通过设置另一个属性 httpHelpPageUrl来更改此地址。 可以使用 HTTPS 而不是 HTTP 来保护此安全。 可以通过设置 httpsHelpPageEnabledhttpsHelpPageUrl

运行示例时,操作请求和响应将显示在客户端控制台窗口中。 前三个操作(加法、减法和乘法)必须成功。 最后一个操作(“除”)由于除数为零异常而失败。

设置、生成和运行示例

  1. 确保已为 Windows Communication Foundation 示例 执行One-Time 安装过程。

  2. 若要生成解决方案的 C# 或 Visual Basic .NET 版本,请按照 生成 Windows Communication Foundation 示例中的说明进行操作。

  3. 若要在单台计算机或跨计算机配置中运行示例,请按照 运行 Windows Communication Foundation 示例中的说明进行操作。