2010-05-05 2 views
0

У меня есть очень простой сервис, что я возился с определяется:Как создать запрос для почтового вызова WCF?

[OperationContract] 
[WebInvoke(UriTemplate = "Review/{val}", RequestFormat = WebMessageFormat.Xml, Method = "POST", BodyStyle=WebMessageBodyStyle.Bare)] 
void SubmitReview(string val, UserReview review); 

UserReview есть, на данный момент, класс без каких-либо свойств. Все очень просто. Когда я пытаюсь проверить это в Fiddler, я получаю сообщение с сообщением о плохом запросе (400).

Я пытаюсь вызвать службу, используя контактную информацию:

POST http://127.0.0.1:85/Service.svc/Review/hello 

Headers

User-Agent: Fiddler 
Content-Type: application/xml 
Host: 127.0.0.1:85 
Content-Length: 25 

Кузов

<UserReview></UserReview> 

Я думаю, что я что-то довольно очевидное отсутствует. Любые указатели?

ответ

0

Добавляя XmlSerializerFormatAttribute методу это вызвано, чтобы начать работать, как ожидалось

[OperationContract] 
[XmlSerializerFormat] 
[WebInvoke(UriTemplate = "Review/{val}", RequestFormat = WebMessageFormat.Xml, Method = "POST", BodyStyle=WebMessageBodyStyle.Bare)] 
void SubmitReview(string val, UserReview review); 
+2

Я думаю, что DataContractSerializer требует некоторого пространства имен самодовольного дурака, чтобы иметь возможность знать, как десериализации ваш объект. Возможно, XMLSerializer более прощает. Если вы включите трассировку WCF и используете SvcTrace, чтобы посмотреть журнал, вы поймете, что происходит неправильно. Фактически, если вы собираетесь выполнять любую работу WCF, я бы научился хорошо разбираться в этом инструменте. –

Смежные вопросы