服务调试行为
ServiceDebug 示例演示如何配置服务调试行为设置。 此示例基于入门指南中的示例,它实现 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<> 是配置元素,使用它可以更改服务调试行为属性。 用户可以修改此行为以实现以下目标:
这使服务可以返回应用程序代码引发的任何异常,即使未使用 FaultContractAttribute 声明该异常。 为此,需要将
includeExceptionDetailInFaults
设置为true
。 此设置在调试服务器引发意外异常的事例时很有用。重要
在生产环境中打开此设置会不安全。 由于意外服务器异常可能具有某些不适用于客户端的信息,因此将
includeExceptionDetailsInFaults
设置为true
可能导致信息泄露。用户还可以使用 serviceDebug<> 来启用或禁用帮助页。 每个服务可以选择公开一个帮助页,该帮助页包含有关服务的信息,其中包括要获取服务的 WSDL 的终结点。 通过将
httpHelpPageEnabled
设置为true
可以启用该帮助页。 这将使帮助页返回到对服务基址的 GET 请求。 通过设置另一个属性httpHelpPageUrl
,可以更改此地址。 通过使用 HTTPS(而不是 HTTP)可以使其安全。 这可以通过设置httpsHelpPageEnabled
和httpsHelpPageUrl
来完成。
运行示例时,操作请求和响应将显示在客户端控制台窗口中。 前三个操作(加、减和乘)都会成功。 最后一个操作(“除”)由于除数为零异常而失败。
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。
要使用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。