WCFサービスからSilverlightクライアントに厳密に型指定されたFaultExceptionsを渡そうとしていますが、私は "リモートサーバーがエラーを返しました:NotFound"です。応答、一般的なFaultExceptionsをスローする同じコードを使用して正常に動作します。厳密に型指定されたFaultExceptionsが機能しない
私がThrow New FaultException()
を実行すると、Silverlightコールバックの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レスポンスのステータスコードを変更しています
<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
私はここで何が欠けていますか?
あなたはRESTサービスを使用しています。それらも_use_ 'FaultException'ですか? –