複数の 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ポートのバインディングで同様の問題を抱えている人はいますか?解決策はありますか?