我设置了一个非常简单的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
工作正常。
我已经做了一些阅读,看起来这个请求会在它增长时失败&gt;一定的长度。
想知道是否还有其他人曾经被这个人咬过,如果有的话有什么运气可以解决它?
干杯, 添
答案 0 :(得分:0)
[WebGet(UriTemplate = "/GetById/{id}")]
应该是:
[WebGet(UriTemplate = "/GetById?id={id}"]
添加更多信息(因为我困惑了一秒钟),/Action/{variable}
用于服务的路径。即,/ GetBy / ID或/ GetBy / Name
然而,该方法期望值完成服务的处理,因此必须是语法?CaseSenstiveMethodParameterName={queryParameter}