我幾乎確切的簽名服務。我可以傳遞具有「。」的值。在名字裏。與URL http://localhost/MyService.svc/category/test.category
我得到傳遞進來的字符串值取值爲「test.category」
[OperationContract]
[WebGet(UriTemplate = "category/{id}")]
string category(string id);
:例如,這會在我的工作。
所以一定有其他問題。你如何訪問網址?只是直接在瀏覽器中?或通過JavaScript調用?只是想知道這是否是客戶端的一些錯誤。服務器傳遞的值很好。我會建議嘗試訪問您的瀏覽器中的網址,如果它不起作用,那麼請準確地發佈您正在使用的URL以及錯誤消息的內容。
此外,你使用WCF 3.5 SP1或只是WCF 3.5?在我閱讀的RESTFul .Net書中,我看到UriTemplate有一些變化。
最後,我從RESTFul .Net書中修改了一個簡單的Service,並且能夠正確迴應。
class Program
{
static void Main(string[] args)
{
var binding = new WebHttpBinding();
var sh = new WebServiceHost(typeof(TestService));
sh.AddServiceEndpoint(typeof(TestService),
binding,
"http://localhost:8889/TestHttp");
sh.Open();
Console.WriteLine("Simple HTTP Service Listening");
Console.WriteLine("Press enter to stop service");
Console.ReadLine();
}
}
[ServiceContract]
public class TestService
{
[OperationContract]
[WebGet(UriTemplate = "category/{id}")]
public string category(string id)
{
return "got '" + id + "'";
}
}
+1爲查詢字符串建議。期限在請求的任何地方都可以正常工作,除了最後。 – 2010-07-04 21:28:32
將參數粘貼到查詢字符串時,UriTemplate(和URL)的外觀如何? – dumbledad 2013-04-29 08:06:05