1

サーバーにインストールしたAsp.netのWebサイトと、SQL Server2008R2のWebサイトのデータベースがあります。私のWebサイトには、ActiveXコンポーネントを含むページがあります。サーバーでWebサイトを実行すると、ActiveXコンポーネントは正しく機能しますが、クライアントからWebサイトを実行すると問題が発生します。

ActiveXコンポーネントを含まないページは正しく機能し、データベースからデータを取得して挿入できます。ActiveXコンポーネントを含むページでは、接続を開くことができなかったというSQLServerエラー番号40が表示されます。

誰かが私がこれを解決するのを手伝ってもらえますか?

4

1 に答える 1

0

Steve B が彼のコメントで暗示しているように、問題はデータベースを直接呼び出す ActiveX コンポーネントにあります。アプリの接続文字列は、Web サーバーからデータベース サーバーへの接続を指定します。これらの接続が機能するのは、ファイアウォールの設定により、その Web サーバーからデータベース サーバーへのインバウンド接続が許可されているためです。データベースに直接接続するように ActiveX コントロールで接続が設定されている場合、ファイアウォールが ActiveX コンポーネントを実行しているクライアントからのインバウンド接続をブロックしているため、接続エラーが発生します。この修正は、アプリケーションを再設計して、クライアント マシン上にある ActiveX コンポーネントがデータベースに対して直接呼び出しを行わないようにすることです。Web サービスまたはその性質のものを利用します。

于 2013-07-10T20:52:04.567 に答える