Ho creato il seguente servizio WCF RESTful, che funziona perfettamente durante l'esecuzione in VS.Perché questo servizio WCF non riconosce il parametro UriTemplate?
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);
Tuttavia, durante la distribuzione di questo al mio server di prova (in esecuzione Win2K3 e IIS6) ho ricevuto il seguente errore del server:
operazione 'GetSalesByDate' nel contratto di usi 'ISalesService' GET, ma ha anche il corpo parametro 'start'. Le operazioni GET non possono avere un corpo. O rendere il parametro 'start' un parametro UriTemplate o passare da WebGetAttribute a WebInvokeAttribute.
Ovviamente ho già fatto "avviare" un UriParameter. Quindi qualcuno può dirmi perché viene lanciata un'eccezione?
EDIT: Per riferimento, ecco il mio file di configurazione:
<?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>
Non capisco perché ha funzionato sulla casella di sviluppo, ma non sul server. Ma sono contento che tu sia sbloccato! – Brian
Anch'io. Funziona bene in VS con l'Uri errato. Strano, lo so ... –