我正在使用以Java編寫並使用Apache Axis 1.3的第三方Web服務。該服務有許多超載操作。當WCF Svcutil生成代理時,它通過在操作名稱後附加一個數字來重命名重載操作。例如:WCF:Svcutil生成無效的客戶端代理,Apache AXIS Web服務,過載操作
getDataResponse getData(getDataRequest request);
getDataResponse1 getData1(getDataRequest1 request);
這本身不是問題,但是當SvcUtil工具生成請求/響應消息,它忽略改變MessageContracts的WrapperName屬性。
[MessageContractAttribute(
WrapperName = "getData",
WrapperNamespace = "http://namespace.com",
IsWrapped = true)]
public partial class getDataRequest1 { .. }
當客戶端應用程序試圖打開代理,下面的異常被拋出:
出現InvalidOperationException:RPC 消息getDataRequest1操作 getData1有一個無效的身體名 的getData。它必須是getData1
如果我改變WrapperName =「getData1」但是,代理將打開,...
- 我無法調用操作,因爲服務不承認「getData1」
- 服務有近1100的操作,其中近一半是重載
有什麼辦法來產生和/或修改代理,以便所有操作與WCF工作?
馬克
@Mark:你有沒有在http://connect.microsoft.com/visualstudio/上向微軟報告過? – 2009-08-01 01:59:03
不,我沒有,但我會。謝謝! – 2009-08-01 10:56:03
也許這畢竟不是一個很糟糕的問題? :-) – 2009-08-01 10:56:58