Ich habe den folgenden RESTful WCF-Dienst erstellt, der problemlos funktioniert, wenn Sie ihn in VS ausführen.Warum erkennt dieser WCF-Dienst den UriTemplate-Parameter nicht?
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);
Wenn jedoch diese auf meinem Testserver bereitstellen (Lauf Win2K3 und IIS6) erhielt ich folgende Serverfehler:
Operation ‚GetSalesByDate‘ in Auftrag ‚ISalesService‘ Anwendungen, aber auch Körper Parameter 'Start'. GET-Operationen können keinen Körper haben. Setzen Sie den Parameter entweder auf einen UriTemplate-Parameter oder wechseln Sie von WebGetAttribute zu WebInvokeAttribute.
Offensichtlich habe ich bereits einen UriParameter 'starten'. Kann mir jemand sagen, warum eine Ausnahme ausgelöst wird?
EDIT: Als Referenz hier ist meine Konfigurationsdatei:
<?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>
Ich verstehe nicht, warum es auf der Dev-Box funktionierte, aber nicht auf dem Server. Aber ich bin froh, dass du nicht blockiert bist! – Brian
Ich entweder. Es funktioniert gut in VS mit dem falschen Uri. Seltsam, ich weiß ... –