0

ドイツの大手ホスティング プロバイダーの仮想サーバーで SQL Server 2008 R2 と ASP.NET MVC 2 Web アプリケーションを実行しています。

SQL Server への接続に問題があります。

localhost では、この接続文字列は正常に機能します。

 @"Data Source=LOCAL-HP;Initial Catalog=OnlineVertrag;Integrated Security=True";

サーバーで同様の接続文字列を使用しています。

@"Data Source=MYSERVER\SQLEXPRESS;Initial Catalog=OnlineVertrag;Integrated Security=True";

しかしそこでは何も起こりません。

ここに私が接続しようとしている私のプロジェクトがあります: http://www.hotcont.eu/OnlineVertrag/Home

4

2 に答える 2

4

コメントに基づいて、サーバー上の SQL インスタンスにはユーザー名とパスワードの組み合わせがあります。SQL 認証を必要とする SQL Server 接続に統合セキュリティ接続を使用することはできません。

ホストから提供されたログイン情報を使用して、接続文字列を次のように更新する必要があります。

Server=MYSERVER\SQLEXPRESS;Database=OnlineVertrag;User Id=myUsername;
Password=myPassword;

ConnectionStrings.comから取得

編集

わかりました - 私はあなたが今何を扱っているか知っていると思います. 大規模なホスティングプロバイダーでホストされている仮想マシンがあります->マシン自体を制御できることを意味します(別名リモートデスクトップ管理または何か?)

私が提供した SQL 接続文字列は、SQL サーバー アカウントで使用するためのものです。つまり、SQL サーバー自体で実際に作成するアカウントを意味します。指定した SQL 接続文字列は、現在ログインしているユーザーの Windows からのユーザー アカウント情報を使用して SQL に接続します。

したがって、ここで localhost と仮想サーバーの間の切断が行われます。localhost で実行している場合、組み込みの Web サーバーを Visual Studio または同等のものに使用していると仮定します。ほとんどの場合、デバッグ中、Web アプリケーションはマシンのログイン ユーザー (別名: あなた) の下で実行されます。独自の SQL データベースに対する権限があるため、問題はありません。しかし... Web アプリケーションを IIS インスタンスにデプロイすると、Web アプリケーションはログイン ユーザーとして実行されなくなり、アプリがメンバーになっているアプリケーション プールの ID として実行されます。通常、これは NETWORKSERVICE のようなものです。

3 つのオプションを利用できます

  1. Web アプリケーションと SQL サーバーからの接続に SQL ユーザー アカウントを有効にして使用します。この方法を選択した場合は、上記で提供した接続文字列を使用する必要があります。

  2. SQL サーバーにログインし、アプリケーション プールの ID を SQL サーバーとデータベースの許可されたユーザーに追加します。

  3. アプリケーション プールの ID をサーバー上の実際のユーザー アカウントに変更します (BAD IDEA)

ほとんどの Web アプリケーションは最初のオプションを使用します。これにより、ホストするアプリケーションごとに個別の SQL ユーザーを作成したり、アクセスが必要な各データベースへの SQL ユーザーのアクセス許可を明示的に定義したりできるためです。 (たとえば、SQL ユーザーがテーブルを削除することを許可しないでください)。

編集2

接続しようとしている方法は、共有メモリ プロトコルを使用しているように聞こえますが、TCP/IP 経由で接続しようとしている可能性があります。以前にこれを忘れていましたが、SQL のほとんどのインストールは、最初のインストールで TCP/IP インターフェイスをリッスンするように設定されていません。構成を確認するには、スタート ボタン (または orb または Microsoft が現在呼び出しているもの) -> [すべてのプログラム] -> [Microsoft SQL Server 2008] -> [構成ツール] -> [SQL Server 構成マネージャー] をクリックします。これにより、左側にいくつかのオプションがある新しいウィンドウが開きます。をクリックしSQL Server Network Configurationます。TCP/IP と共有メモリが有効に設定されていることを確認します。64 ビット インストールの場合は、おそらくSQL Server Network Configuration (32 bit)と の両方でこれを行う必要があります。SQL Server Network Configuration

http://msdn.microsoft.com/en-us/library/ms191294.aspx

于 2012-10-25T21:49:32.423 に答える
0

これを試して

Data Source=MYSERVER\SQLEXPRESS;Initial Catalog=OnlineVertrag;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False

これがうまくいくことを願っています。

于 2012-10-30T22:13:19.733 に答える