0

Microsoft SQL サーバーを使用する .NET プロジェクトに取り組んでいます。このプロジェクトでは、リモート Web サービスを使用する CLR ストアド プロシージャ (C# で記述) が必要です。そのため、ストアド プロシージャが SQL サーバーで実行されると、Web サービス呼び出しが行われ、パケットがリモートの場所に送信されます。問題は、SP を実行すると、「System.Net.WebException: The request failed with HTTP status 403: Forbidden」というメッセージが表示されることです。

データベースユーザーには完全な権限があり、展開されたCLRアセンブリとSPは「安全ではない」とマークされています。署名しようとしたなど、問題は発生していません。

まったく同じ C# コードを実行していますが、SP としてではなく単純なコンソール アプリケーションから実行すると、すべて正常に動作します。そのため、ネットワーク関連の問題を疑い始め、SP とコンソール アプリ バージョンの両方を実行するときにパケット スニファーを実行していました。

私が気付いたのは、送信されたパケットの宛先 IP アドレスが異なることでした。コンソール アプリはパケットを Web サービス IP に直接送信し、SP はパケットを社内で使用しているプロキシ サーバーに送信しました。ネットワーク ポリシーにより、後者は許可されておらず、「403 Forbidden」例外が説明されています。

したがって、私の質問は次のようになります。SP/MS SQL サーバーがそのプロキシを使用しないように構成するにはどうすればよいですか? テスト コンソール アプリと同じように、パケットを Web サービス IP に直接送信する必要があります。(繰り返しますが、C# コードは同じなので、プログラミングの問題ではありません)。

SQL サーバーがこれらの設定などを継承する場合に備えて、Internet Explorer のすべてのプロキシ設定を無効にしました。しかし、運が悪い。

どんな助けでも大歓迎です!

よろしく、ピーター

4

2 に答える 2

2

SQL CLR から HTTP Web 呼び出しを行わないでください。

外部プロセスからすべての Web サービス呼び出しを行います。CLRイベントですべてのスレッドがブロックされ、ワー​​カー飢餓で運用サーバーがフリーズしているのを見つけたくない場合を除きます。あなたは警告されました。

于 2010-05-16T19:47:26.260 に答える
0

最も可能性の高い説明は、ある種のネットワーク レベルの透過的なプロキシです。あなたのネットワークを管理/管理している人と問題について話し合います。

于 2010-05-16T15:55:11.473 に答える