为什么在“GET”时会出现此WCF错误?

时间:2011-06-21 11:42:04

标签: c# wcf rest uritemplate

我写了方法合同:

[OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "TestEchoWithTemplate/{message}", BodyStyle = WebMessageBodyStyle.Bare)]
    string TestEchoWithTemplate(string s);

和实施方法:

  public string TestEchoWithTemplate(string s)
    {
        return "You said " + s;
    }

当我浏览到网址时:

  

http://localhost:52587/VLSContentService.svc/rest/TestEchoWithTemplate/HelloWorld

我收到以下错误:

  

操作'TestEchoWithTemplate'   合同'IVLSContentService'有一个   需要参数的UriTemplate   名为'MESSAGE',但没有输入   带有该名称的参数   操作

以下产生相同的错误:

http://localhost:52587/VLSContentService.svc/rest/TestEchoWithTemplate/MESSAGE=HelloWorld HTTP://本地主机:52587 / VLSContentService.svc /休息/ TestEchoWithTemplate MESSAGE = HelloWorld的

我做错了什么?

1 个答案:

答案 0 :(得分:7)

将模板定义为

"TestEchoWithTemplate/{s}"

由于您的方法有s而不是message。或者,将名称更改为界面中的message

[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "TestEchoWithTemplate/{message}", BodyStyle = WebMessageBodyStyle.Bare)]
string TestEchoWithTemplate(string message);