我正在嘗試創建一個WCF客戶端以將XML消息發送到CGI腳本。該腳本以請求 - 響應模式運行,其中XML消息的內容將確定要調用的操作。如何控制服務方法的URI?
我已經通過創建一個服務合同,代表定義的一組文件啓動CGI腳本將接受:
[ServiceContract]
public interface ICgiService
{
[OperationContract(Name="request1")]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare)]
ServiceResponse SubmitRequest(Request1 request);
[OperationContract(Name="request2")]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare)]
ServiceResponse SubmitRequest(Request2 request);
[OperationContract(Name="request3")]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare)]
ServiceResponse SubmitRequest(Request3 request);
}
我從這個接口生成的代理客戶,並與地址配置端點CGI腳本並使用HTTP傳輸。
當發出請求時,WCF運行時的默認行爲是將操作名稱附加到端點地址以生成URI http://server/script.cgi/request1
。
如何修改此行爲,以便所有請求都發送到端點地址而不對URI做任何更改(例如http://server/script.cgi
)?
'UriTemplate =「/」'仍然通過追加「/」來修改地址。除原始端點URI之外的任何請求都會返回404。 – 2010-07-17 07:06:34
@編程英雄:你有沒有試過'UriTemplate =「」'? – 2010-07-17 07:26:07
是的,作爲我之前嘗試做這項工作的一個嘗試。我不記得確切的行爲;我收到了一個異常,或者它使用了操作名稱。 – 2010-07-17 07:28:19