Tôi đã tạo dịch vụ RESTful WCF sau, hoạt động tốt khi chạy nó trong VS.Tại sao dịch vụ WCF này không nhận ra tham số UriTemplate?
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);
Tuy nhiên, khi triển khai này đến máy chủ thử nghiệm của tôi (chạy Win2K3 và IIS6) tôi nhận được lỗi máy chủ sau:
Operation 'GetSalesByDate' trong hợp đồng sử dụng 'ISalesService' GET, mà còn có cơ thể tham số 'bắt đầu'. Hoạt động GET không thể có thân. Hoặc là làm cho tham số 'bắt đầu' một tham số UriTemplate, hoặc chuyển từ WebGetAttribute sang WebInvokeAttribute.
Rõ ràng là tôi đã thực hiện 'bắt đầu' tham số UriParameter. Vì vậy, bất cứ ai có thể cho tôi biết lý do tại sao một ngoại lệ đang được ném?
EDIT: Để tham khảo, đây là tập tin cấu hình của tôi:
<?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>
Tôi không hiểu tại sao nó hoạt động trên hộp dev, nhưng không phải trên máy chủ. Nhưng tôi rất vui khi bạn được bỏ chặn! – Brian
Tôi. Nó hoạt động tốt trong VS với Uri không chính xác. Lạ thật, tôi biết ... –