Как WCF переносит текстовые сообщения XML? - PullRequest
0 голосов
/ 12 ноября 2010

У меня проблема с тем, чтобы моя служба WCF работала с другими клиентами.

ServiceContract выглядит следующим образом:

[ServiceContract]
public interface IMyService
{
  [OperationContract]
  [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, 
    ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml,
    UriTemplate = "/calculation/{accountNumber}")]
  string RunCalculations(string returnInformation, string accountNumber);
}

Я написал простой клиент, чтобы убедиться, чтовсе работало, и когда я передаю xml, который я хочу, все работает плавно.

Проблема в том, что сервис существует для предоставления интерфейса нашего продукта стороннему поставщику, который разрабатывает веб-интерфейс на php,Когда он пытается выдать запрос, он получает ошибку 400 Bad Request, которая при просмотре трассировки возникает, когда WCF пытается проанализировать его xml.

Полученное сообщение об ошибке:

Unable to deserialize XML body with root name 'BusinessTaxReturn' and root namespace '' (for operation 'RunCalculations' and contract ('IMyService',  'http://tempuri.org/')) using DataContractSerializer. 
Ensure that the type corresponding to the XML is added to the known types collection of the service.

Я предполагаю, что WCF упаковывает сообщение, отправленное моим клиентом, а затем пытается развернуть его, когда служба получает сообщение.Это оставляет мне два вопроса:

  1. Чем WCF переносит XML-сообщения?
  2. Как лучше всего решить эту проблему?Должен ли я просто попросить клиента обернуть его сообщение или я действительно пытаюсь использовать DataContract?

1 Ответ

0 голосов
/ 19 ноября 2010

Чтобы понять это, используйте прокси-сервер отладки HTTP, например Fiddler , чтобы шпионить за сообщениями, которые ваш клиент WCF отправляет на сервер WCF, и сравнивать их с сообщениями, отправляемыми приложением PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...