具有UriTemplate的WCF服务-“长度不能小于零”
我有一个非常简单的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 它返回
[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}"]