C#からWSO2データサービスを利用できません。文書化された方法を使用してデータサービスを作成し、「TryIt」関数からデータサービスを操作できるようになりました。次に、VisualStudio2010にサービス参照を登録します。受け取ったエラーは次のとおりです。
The method 'update_RealtyIntroduction_operation' in type 'Realty1.ServiceReference1.RealtyIntroduction_DataServicePortType' is marked IsOneWay=true
and declares one or more FaultContractAttributes. One-way methods cannot declare FaultContractAttributes.
To fix it, change IsOneWay to false or remove the FaultContractAttributes.
IsOneWayまたはFaultContractAttributesのいずれかを削除して生成されたコードを編集すると、サービス参照を更新するまで正しく機能します。問題は、W3C標準に違反しているという点で、WSO2によって生成されたWSDL1.1にあるようです。この規格では、次の操作が定義されています。
<wsdl:definitions .... > <wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:input name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
http://www.w3.org/TR/wsdl#_one-way
しかし、WSO2は以下を生成しています。
<wsdl:operation name="update_RealtyIntroduction_operation">
<wsdl:documentation />
<wsdl:input wsaw:Action="urn:update_RealtyIntroduction_operation" message="ns0:update_RealtyIntroduction_operationRequest" />
<wsdl:fault wsaw:Action="urn:update_RealtyIntroduction_operationDataServiceFault" name="DataServiceFault" message="ns0:DataServiceFault" />
</wsdl:operation>
これを相互運用させる方法について誰かアドバイスがありますか?