如何将十进制数传递给其余的Web服务

问题描述 投票:3回答:4

我想将十进制数(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;
}
c# wcf web-services rest
4个回答
3
投票

您应该查看IIS日志以查看问题。可能导致这种问题的一件事是UrlScan。它有UrlScan.ini配置文件,您可以在其中找到AllowDotInPath参数。如果设置为0,则拒绝上述请求。只需将其更改为1(但不要忘记确保,您不允许通过拒绝URL来允许目录遍历)。


1
投票

您可能需要考虑使用POST请求在请求表示中将该号码发送到您的资源。


0
投票

这应该可以正常工作,我不能用类似的基本设置重现这个问题 - 你确定你的echo方法的默认路由设置正确吗?


0
投票

我在WCF OData服务器上调用方法时遇到了类似的问题。

问题是十进制参数最后需要'm'。

http://localhost/restdataservice.svc/echo/2.2m
© www.soinside.com 2019 - 2024. All rights reserved.