我正在尝试将强类型的 FaultExceptions 从 WCF 服务传递到 Silverlight 客户端,但我得到的只是通用的“远程服务器返回错误:NotFound”。响应,同时使用相同的代码抛出通用的 FaultExceptions 工作正常。
因此,如果我这样做,我会在 Silverlight 回调Throw New FaultException()
的参数中将其取回,而导致未找到错误。e.Error
Throw 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
我在这里想念什么?