我想将十进制数(1.23)传递给我的WCF-REST Web服务。
我一直收到'资源无法找到'的错误。我希望我遇到IIS的一些安全功能,其中包含点的网址是资源。有没有人建议如何将十进制数传递给我的网络服务?
样本网址... http://localhost/restdataservice.svc/echo/2.2
运营合同
[OperationContract]
[WebGet(UriTemplate = "echo/{number}")]
string Echo(string number);
并实施
public string Foo(string number)
{
return number;
}
您应该查看IIS日志以查看问题。可能导致这种问题的一件事是UrlScan。它有UrlScan.ini配置文件,您可以在其中找到AllowDotInPath参数。如果设置为0,则拒绝上述请求。只需将其更改为1(但不要忘记确保,您不允许通过拒绝URL来允许目录遍历)。
您可能需要考虑使用POST请求在请求表示中将该号码发送到您的资源。
这应该可以正常工作,我不能用类似的基本设置重现这个问题 - 你确定你的echo
方法的默认路由设置正确吗?
我在WCF OData服务器上调用方法时遇到了类似的问题。
问题是十进制参数最后需要'm'。
http://localhost/restdataservice.svc/echo/2.2m