我们目前有一个有效的REST WCF服务。我正在尝试为错误处理实现自定义行为,该行为将返回自定义JSON对象。我相信这里找到的文章WCF Exception Handling with IErrorHandler可以解决问题,但是,该示例显示了如何通过代码添加行为。我们通过IIS托管服务,没有ServiceHost。任何人都可以指导我如何将我的自定义错误处理类添加到web.config?
我在Google和SO上搜索过并找到了一些与我想要完成的内容相近的例子,但我对WCF的理解可能会让我无法完全理解。
以下是我们为端点配置的所有内容。
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint helpEnabled="true" automaticFormatSelectionEnabled="false"/>
</webHttpEndpoint>
</standardEndpoints>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
答案 0 :(得分:4)
不幸的是,你将必须编写一些代码。诀窍是将代码放在类库中,然后配置web.config以使用该代码。
从您正在使用的示例中复制ErrorHandlerServiceBehavior
类,将其编译到您的WCF项目中。
创建行为扩展名:
<extensions>
<behaviorExtensions>
<add name="myBehavior" type="MyLibrary.ErrorHandlerServiceBehavior, MyLibrary,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
将行为扩展应用于行为配置:
<behaviors>
<behavior configurationName="testBehaviorConfiguration">
<myBehavior />
</behavior>
</behaviors>
将行为配置应用于服务:
<services>
<service name="MyLibrary.MyService"
behaviorConfiguration="testBehaviorConfiguration">
<endpoint binding="basicHttpBinding"
contract="MyLibrary.IMyService"/>
</service>
</services>