1

ファイアウォールの背後にある SQL Server データベースに接続しようとしています。DMZ にある asp.net アプリケーションはデータベースに接続しようとしますが、エラーが発生します (Web アプリケーションはローカル マシンから正常に動作します)。

ここに画像の説明を入力

私がtelnetするとき:

open 0.0.0.0 1433

それは言います:

Connecting to 0.0.0.0 ...
Connection to host lost

これは、ファイアウォールが着信要求をブロックしていることを意味しますか? それともこれは別のものですか?(ポートが開いていることを IT サポートが保証してくれました)

接続文字列:

data source=0.0.0.0; initial catalog=mydb;user id=xxxx;password=xxxx;persist security info=True;packet size=4096;
4

2 に答える 2

0

SQL サーバーがファイアウォールの背後にある場合 (それは良いことです)、Web アプリはそれに直接接続するべきではありません。むしろ、ある種のサービス層を通過する必要があります。これは、さまざまなテクノロジを使用してさまざまな方法で実装できます。このサービスは、db にアクセスできるマシン上に物理的に配置する必要があり、Web サーバーが db マシン (またはクラスター) に直接接続できないようにする必要があります。

それでは、接続文字列に対処しましょう。「integrated security=true」を追加してみてください。次に例を示します。

<接続文字列>
    <add name="ConnStringDb1" connectionString="Data Source=MY_SERVER_NAME_OR_IP;Initial Catalog=MyDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </接続文字列>

繰り返しになりますが、Web アプリ自体は、データ アクセス層に直接接続するのではなく、このサービス層 (おそらく WCF または COM コンポーネント) のみを呼び出す必要があることに注意してください。これらのタイプのアプリケーションを設計する方法については、多くのサンプルがあります。これがうまくいけば役立つものです。http://www.c-sharpcorner.com/UploadFile/SukeshMarla/3-tier-architecture-using-Asp-Net/ . 幸運を。

于 2013-02-28T13:34:52.830 に答える
0

ASP サーバーに新しい UDL ファイルを作成します。UDL ファイルを開き、インターフェイスを使用して SQL サーバーに正常に接続し、ファイルを保存します。UDL ファイルをテキスト エディターで開き、接続文字列をアプリケーションにコピーします。

于 2013-02-28T10:12:48.333 に答える