Не уверен, что мне не хватает, но по какой-то причине WCf продолжает бросать эту ошибку на меня.
На сервере возникла ошибка при обработке запроса. Сообщение об исключении: "Входящее сообщение имеет неожиданный формат сообщения" Raw ". Ожидаемыми форматами сообщений для операции являются "Xml", "Json". Это может быть связано с тем, что WebContentTypeMapper не был настроен на привязку. Подробнее см. Документацию WebContentTypeMapper. '. Подробнее см. Журналы сервера. Трассировка стека исключений:
в System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object [] parameters) в System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object [] parameters) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc & rpc) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11 (MessageRpc & rpc) в System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
Мой сервис
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[UserAccessRoleValidatorAspect(Access = Otive.Subscriptions.UserAccessType.Install)]
public class PaymentProcessPublic : BaseService,IPaymentProcessPublic
{
private PaymentProcessorInvoiceService PaymentProcessorInvoiceService =
new PaymentProcessorInvoiceService(ConnectionManager.GetConnectionInfo(Otive.Consts.TenantId));
public GetQuickInvoiceInfoResponse GetInvoiceQuickInfo (GetQuickInvoiceInfoRequest Request)
{
GetQuickInvoiceInfoResponse Response = new GetQuickInvoiceInfoResponse();
Response.PaymentProcessorInvoiceInfo = this.Converter.Convert( PaymentProcessorInvoiceService.GetPaymentProcessorInvoiceInfo(Guid.Parse(Request.PaymentKey)));
return Response;
}
}
Мой интерфейс
[WebInvoke(RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
Method = "*", BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
GetQuickInvoiceInfoResponse GetInvoiceQuickInfo(GetQuickInvoiceInfoRequest Request);
Запрос заголовка Accept: application/json, text/plain,/
Запросить полезную нагрузку {PaymentKey: "A4F5E417-4938-4BA6-9E4C-FEC4C6499B28"}
Объект запроса сервера
public class GetQuickInvoiceInfoRequest
{
public string PaymentKey { get; set; }
}
Мои проблемы были вызваны отсутствием доступа к запрашиваемому ресурсу. Это сообщение очень вводило в заблуждение.