1

複数の SOAP ポートを使用してサード パーティの Web サービスからデータを要求する BizTalk 2006 アプリケーションを継承しました。Web サービスは、「基本」認証 (ユーザー名/パスワード) によって保護されています。アプリケーションにいくつかの拡張を行った後、サード パーティの Web サービスにアクセスできる統合テスト サーバーにデプロイしました。BizTalk アプリはデータを取得できませんでした。すぐに、SOAP 送信ポートにユーザー名とパスワードを設定するのを忘れていたことに気付きました。BizTalk アプリがライブ サーバーに展開されるときに、私がその場にいない可能性があるため、BizTalk アプリの展開をできるだけ自動化する必要がありました。バインディング ファイルを開き、問題のある SOAP 送信ポートの 1 番目を見つけて、* これは BizTalk がパスワードを置き換えるために使用しますが、そうではありません! SOAP ポートのパスワードが * ではなく NULL に設定されているようです。詳細については、こちらを参照してください: http://msdn.microsoft.com/en-us/library/aa547319.aspx

バインディングの更新に進みましたが、修正したバインディング ファイルをインポートしてテストを行ったところ、以前と同じ問題があることがわかりました。再確認したところ、バインド ファイルに正しいパスワードが存在することを確認できましたが、インポート中に BizTalk からエラーが発生することはありませんが、アプリを実行すると、次の例外が発生します。

詳細:"ArgumentNullException: 文字列参照が文字列のインスタンスに設定されていません。パラメータ名: s ".

その後、BizTalk 管理コンソールから手動でパスワードを修正すると、すべて正常に動作します。

SOAPポートのバインディングで同様の問題を抱えている人はいますか?解決策はありますか?

4

2 に答える 2

4

私は過去にこのようなものに噛まれたことがあります。パスワードは '****' として入力されます。これで結構です。すべてのシークレットをバインド ファイルと共にエクスポートすることは望ましくありません。バインドをエクスポートし、パスワードを NULL のままにすると、何が得られますか。パスワードの XML 要素の Variable Type (vt) 属性は、NULL と同じ vt="1" に設定されます。パスワードに何を入力しても問題ありません。説明したエラーが発生することさえあります。確認のためにバインディング XML のコピーを含めることをお勧めします。

于 2008-12-01T03:15:45.447 に答える
0

私はこれまでにこの問題を見たことがありません - 私はまさにあなたがやろうとしていることをやっていますし、それは完全に機能します.

動作する BizTalk バインディングの 1 つから <TransportTypeData> 要素を含めました。うまく比較できるものがあると助かります。

<TransportTypeData>
&lt;CustomProps&gt;
&lt;AuthenticationScheme vt="8"&gt;Basic&lt;/AuthenticationScheme&gt;
&lt;AssemblyName vt="8"&gt;WebService.ProxyClass, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=xyz&lt;/AssemblyName&gt;
&lt;Username vt="8"&gt;soapUser&lt;/Username&gt;
&lt;UseProxy vt="11"&gt;0&lt;/UseProxy&gt;
&lt;UseSoap12 vt="11"&gt;0&lt;/UseSoap12&gt;&lt;UsingOrchestration vt="11"&gt;0&lt;/UsingOrchestration&gt;
&lt;UseSSO vt="11"&gt;0&lt;/UseSSO&gt;
&lt;Password vt="8"&gt;MYPASSWORD&lt;/Password&gt;
&lt;ProxyPort vt="3"&gt;80&lt;/ProxyPort&gt;&lt;AssemblyPath
vt="8"&gt;C:\ProxyClass\bin\Debug\ProxyClass.dll&lt;/AssemblyPath&gt;
&lt;TypeName vt="8"&gt;ProxyClass.Webservice.servicesService&lt;/TypeName&gt;
&lt;MethodName vt="8"&gt;PickupRequest&lt;/MethodName&gt;
&lt;UseHandlerSetting vt="11"&gt;-1&lt;/UseHandlerSetting&gt;
&lt;/CustomProps&gt;
</TransportTypeData>
于 2008-11-29T01:00:19.807 に答える