2011-02-23 72 views
3

我想将一个十进制数(1.23)传递给我的WCF-REST Web服务。如何将十进制数传递给其他Web服务

我不断收到'资源找不到'错误。我期望我遇到一些IIS的安全功能,其中包含点的URL是资源。有没有人有关于如何将十进制数传递给我的web服务的建议?

样品网址... http://localhost/restdataservice.svc/echo/2.2

经营合同

[OperationContract] 
[WebGet(UriTemplate = "echo/{number}")] 
string Echo(string number); 

而且实现

public string Foo(string number) 
{ 
    return number; 
} 
+0

当您使用浏览器浏览到不带'number'参数的URL时,会发生什么情况,只是为了'/ echo'? – Jeff 2011-02-23 17:13:08

回答

3

您应该查看IIS日志以查看问题。有一件事会导致这样的问题是UrlScan。它有UrlScan.ini配置文件,在这里你可以找到AllowDotInPath参数。如果它设置为,则上述请求将被拒绝。只需将其更改为(但不要忘记确保您不允许使用..拒绝网址来进行目录遍历)。

0

这应该做工精细开箱,我不能用类似的基本重现此问题设置 - 你确定你的echo方法的默认路由设置是否正确?

+1

我相信这是Visual Studio附带的Cassini Web Server的问题。 – 2011-02-23 19:52:18

+0

@amit_g:我也在使用卡西尼进行测试,对我来说效果不错 – BrokenGlass 2011-02-23 19:58:49

+0

当使用卡西尼时,我可以使用VS2010重现这一点。通过IIS浏览时,同样的项目工作得很好。 – 2011-02-23 20:26:03

1

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

相关问题