2010-07-21 2 views
0

Я работаю над сервисом REST WCF, и в службе у меня есть два метода с тем же URITemplate. Один из них отмечен WebGet, а другой - WebInvoke, используя PUT в качестве метода.WCF - Ошибка маршрутизации

[WebGet(URITemplate="{name}")] 
public Something GetSomethingNamed(string name) 


[WebInvoke(Method="PUT", URITemplate="{name}")] 
public Something AddSomethingNamed(Something somethingToAdd) 

При попытке проверить что-то на службе, лучший способ справиться исключением, при попытке перейти к методу GET в IE я получил ошибку, AddsomethingNamed требуемого параметра с именем NAME.

Я немного озадачен этим ответом, так как я даже не знаю, как он попал к методу PUT, из того, что я знаю, веб-браузеры даже не поддерживают PUT.

ответ

1
[WebInvoke(Method="PUT", URITemplate="{name}")] 
public Something AddSomethingNamed(Something somethingToAdd) 

В вашем коде выше в шаблоне URI вы упомянули {имя}, что означает, что ваш метод принимает еще один параметр «имя».

Таким образом, ваш метод подписи должен быть либо из следующих

[WebInvoke(Method="PUT", URITemplate="AddSomethingNamed")] 
public Something AddSomethingNamed(Something somethingToAdd) 

ИЛИ

[WebInvoke(Method="PUT", URITemplate="{name}")] 
public Something AddSomethingNamed(string name, Something somethingToAdd) 
Смежные вопросы