加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – WCF和验证应用程序块:无法自定义错误消息?

发布时间:2020-12-17 07:14:29 所属栏目:百科 来源:网络整理
导读:将WCF与Enterprise Library 5.0的验证应用程序块一起使用时,是否可以自定义发送回客户端的错误消息? 我已将ValidationBehaviour属性添加到我的服务合同中,并将FaultContract属性添加到操作中: ServiceContract() _ValidationBehavior() _Public Interface
将WCF与Enterprise Library 5.0的验证应用程序块一起使用时,是否可以自定义发送回客户端的错误消息?

我已将ValidationBehaviour属性添加到我的服务合同中,并将FaultContract属性添加到操作中:

<ServiceContract()> _
<ValidationBehavior()> _
Public Interface IContract

    <OperationContract(),FaultContract(GetType(ValidationFault))> _
    Function GetCustomers(ByVal criteria As CustomersSearchCriteria) As List(Of Customer)

End Interface

然后,在CustomersSearchCriteria内部,我添加了验证属性:

<Validators.StringLengthValidator(1,3,ErrorMessage:="here's my error",Tag:="551")> _
Public Property Pin() As String
    Get
        Return _pin
    End Get
    Set(ByVal value As String)
        _pin = value
    End Set
End Property

但是当使用无效参数调用时,返回的SOAP如下所示:

<s:Fault>
     <faultcode>s:Client</faultcode>
     <faultstring xml:lang="fi-FI">The creator of this fault did not specify a Reason.</faultstring>
     <detail>
        <ValidationFault xmlns="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
           <Details xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
              <a:ValidationDetail>
                 <a:Key>Pin</a:Key>
                 <a:Message>The length of the value must fall within the range "1" (Inclusive) - "3" (Inclusive).</a:Message>
                 <a:Tag>criteria</a:Tag>
              </a:ValidationDetail>
           </Details>
        </ValidationFault>
     </detail>
  </s:Fault>

该服务按原样返回ValidationFault,但它没有使用我定义的错误消息和标记,而是使用了一些通用值.这是一个错误还是我做错了什么?

解决方法

我认为您需要使用MessageTemplate属性而不是ErrorMessage属性.尝试:

<Validators.StringLengthValidatorAttribute(1,MessageTemplate:="here's my error",Tag:="551")> _

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读