我没有任何运气,谷歌搜索了一段时间,现在试图找出WCF服务如何对空值做出反应 - 直接就像在服务方法的实际参数中设置为null;间接地:参数(DataContract-annotated object)的任何属性都为null。
我的服务是否应该对它访问的任何属性值执行空检查,或者这是隐式的?如果我的服务方法对null属性执行调用,这只会导致FaultException
(没有任何关于出错的信息)传递给客户端吗?
此致
答案 0 :(得分:1)
我在服务配置中启用了错误报告,以便向客户端返回有用的错误信息:
<behaviors>
<serviceBehaviors>
<behavior name="errorEnabledBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/> <!-- THIS IS IT! -->
</behavior>
</serviceBehaviors>
</behaviors>
确保在服务定义中使用此行为
<service behaviorConfiguration="errorEnabledBehavior" ...>
修改强>
我在本地环境中使用它,无论如何我在服务器端记录错误,包括完整的堆栈跟踪。正如他在评论中提到的那样,将这些信息传递给客户可能是危险的,不应该在生产环境中使用。另一种解决方案是使用here所述的自定义故障合同。