0

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>

これを相互運用させる方法について誰かアドバイスがありますか?

4

1 に答える 1

1

ええ、これは in-only 操作のバグのようです。今のところ、潜在的な in-only 操作については、データ サービス操作に "returnRequestStatus" フラグを設定して、実際に in-out 操作にすることができます。その後、呼び出しが成功した場合は静的な成功メッセージを送信するだけです。それ以外の場合は SOAP エラーが送信されます。そして、これらのタイプの操作から生成された WSDL は、仕様に準拠します。

乾杯、アンジャナ。

于 2012-05-10T19:47:35.803 に答える