Я пытаюсь передать строго типизированные ошибки FaultException из службы WCF клиенту Silverlight, но все, что я получаю, является общим «Удаленный сервер возвратил ошибку: NotFound». ответ, при использовании одного и того же кода для генерации общих исключений Fault отлично работает.строго типизированный FaultExceptions не работает
Итак, если я это сделаю Throw New FaultException()
Я верну его обратно в параметре e.Error
обратного вызова Silverlight, а 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
Что мне здесь не хватает?
Вы используете услугу REST. У этого даже _use_ 'FaultException'? –