Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有UriTemplate的WCF服务-“长度不能小于零”_Wcf_Rest_.net 4.0_Sitecore - Fatal编程技术网

具有UriTemplate的WCF服务-“长度不能小于零”

具有UriTemplate的WCF服务-“长度不能小于零”,wcf,rest,.net-4.0,sitecore,Wcf,Rest,.net 4.0,Sitecore,我有一个非常简单的WCF服务,其设置方法类似于: [OperationContract] [WebGet(UriTemplate = "/GetById/{id}")] ResponseSingle<BinderViewModel> GetById(string id); 当我试着用GUID打它的时候,就像 http://localhost/services/myservicename.svc/GetById/5c3f04d7-f96e-4acd-847b-6da5937e 它返回

我有一个非常简单的WCF服务,其设置方法类似于:

[OperationContract]
[WebGet(UriTemplate = "/GetById/{id}")]
ResponseSingle<BinderViewModel> GetById(string id);
当我试着用GUID打它的时候,就像

http://localhost/services/myservicename.svc/GetById/5c3f04d7-f96e-4acd-847b-6da5937e

它返回一个500和一个异常,说明:

长度不能小于零。参数名称:长度

如果我删除UriTemplate并将其作为:

http://localhost/services/myservicename.svc/GetById?id=5c3f04d7-f96e-4acd-847b-6da5937e

它很好用

我已经读了一些书,看起来当请求增长到>某个长度时,请求就会终止

想知道以前是否有人被咬过,如果是的话,是否有幸解决

干杯, 提姆

应该是:

[WebGet(UriTemplate = "/GetById?id={id}"]
添加更多信息时,我一时糊涂,/Action/{variable}是服务的路径。即/GetBy/ID或/GetBy/Name

然而,该方法需要一个值来完成服务的处理,因此必须是语法为?CaseSensitiveMethodParameterName={queryParameter}的查询


您确定在端点配置中为您的服务设置了正确的路径吗?是否可以发布上述服务的配置部分?我也试过同样的方法,效果和预期一样,没有任何问题。另外,500错误是一个内部服务器错误,可能是由于其他原因。只需启用跟踪即可查看其失败的确切原因。我建议您查看WCF WebAPI ASP.NET Web API。在尝试设置简单服务时,它消除了许多令人头痛的问题。@paramosh是的,端点正常,请参阅我的编辑。若端点有问题,那个么第一个请求根本不起作用。
[WebGet(UriTemplate = "/GetById?id={id}"]