gpt4 book ai didi

wcf - 为什么此 WCF 服务无法识别 UriTemplate 参数?

转载 作者:行者123 更新时间:2023-12-04 10:22:29 24 4
gpt4 key购买 nike

我创建了以下 RESTful WCF 服务,它在 VS 中运行时运行良好。

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);

但是,当将它部署到我的测试服务器(运行 Win2K3 和 IIS6)时,我收到以下服务器错误:

契约(Contract)“ISalesService”中的操作“GetSalesByDate”使用GET,但也有主体参数“start”。 GET 操作不能有主体。要么使参数“开始”成为 UriTemplate 参数,要么从 WebGetAttribute 切换到 WebInvokeAttribute。

显然我已经“开始”了一个 UriParameter。那么谁能告诉我为什么会抛出异常?

编辑:
作为引用,这是我的配置文件:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="Services.SalesService">
<endpoint behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="Services.ISalesService"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>

最佳答案

原来/sales/start={start}&end={end}不是有效的 Uri(废话!)。经过一些试验和错误,我终于明白了这一点。用“?”调整 UriTemplate解决了这个问题。

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/?start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);

谢谢你的帮助!

关于wcf - 为什么此 WCF 服务无法识别 UriTemplate 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com