1

我正在尝试将强类型的 FaultExceptions 从 WCF 服务传递到 Silverlight 客户端,但我得到的只是通用的“远程服务器返回错误:NotFound”。响应,同时使用相同的代码抛出通用的 FaultExceptions 工作正常。

因此,如果我这样做,我会在 Silverlight 回调Throw New FaultException()的参数中将其取回,而导致未找到错误。e.ErrorThrow New FaultException(Of clsServiceFault)(clsServiceFaultInstance)

clsServiceFault已经被声明为数据合约,如下所示:

<DataContract()> _
Public Enum ServiceFaultTypes
    LoginFailed
    SessionExpired
End Enum

<DataContract()> _
Public Class clsServiceFault

    Public Sub New()
    End Sub

    Public Sub New(iType As ServiceFaultTypes, iMessage As String)
        Type = iType
        Message = iMessage
    End Sub

    <DataMember()> _
    Public Property Type As ServiceFaultTypes

    <DataMember()> _
    Public Property Message As String

End Class

引发错误的 WCF 方法已使用该FaultContract属性进行修饰,并且我还将 HTTP 响应状态代码更改为 200。

<OperationContract()> _
<FaultContract(GetType(clsServiceFault))> _
Public Function GetCustomersData(...)

...
System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.StatusCode = Net.HttpStatusCode.OK
Throw New FaultException() 'Works
Throw New FaultException(Of clsServiceFault)(new clsServiceFault(..)) 'Does not work
...
End Function

我在这里想念什么?

4

1 回答 1

0

您是否使用SilverlightFaultBehavior来装饰您的服务?如果没有,这可能会回答您的问题。

于 2012-05-10T13:46:02.127 回答