2

SalesForce からのアウトバウンド通知サービスを使用しています。

SalesForce WSDL からプロキシを生成し、それを ASMX Web サービスに送信しようとすると、次のエラーが発生します。

リクエスト要素 http://soap.sforce.com/2005/09/outbound'> が認識されませんでした。

私が持っているC#ASMX Webサービスで

[WebService(Namespace = "http://services.company1.com.au/services")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
public class ImportPosition : WebService, NotificationPort

SalesForce WSDL には、次の SOAP 定義があります。

<definitions targetNamespace="http://soap.sforce.com/2005/09/outbound"
         xmlns="http://schemas.xmlsoap.org/wsdl/"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
         xmlns:tns="http://soap.sforce.com/2005/09/outbound"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:ent="urn:enterprise.soap.sforce.com"
         xmlns:ens="urn:sobject.enterprise.soap.sforce.com">

C# ASMX Web サービスの名前空間を ' http://soap.sforce.com/2005/09/outbound ' に変更すると、要求は正常に受信されますが、null オブジェクトとして受信されます。

Wireshark を使用すると、SOAP メッセージが次のように受信されることがわかります。

<notifications xmlns="http://soap.sforce.com/2005/09/outbound"

この名前空間の問題の原因は何ですか? ありがとう

4

1 に答える 1

0

プロキシの生成に間違ったツールを使用していたことが判明しました。

svcutil.exe ではなく wsdl.exe を使用する必要がありました

SalesForce からのアウトバウンド通知を受信する Web サービスを作成するためのヒント

use .asmx 
WS-I Basic Profile 1.1 
Web Service Description Language (WSDL) 1.1
Simple Object Access Protocol (SOAP) 1.1
于 2013-02-26T03:56:25.577 に答える