1

開発マシンで作業するときは、次の接続文字列を使用します。

<add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" />

これは毎回機能します。

ただし、専用ホストであるリモートIISサーバーに展開しようとすると(SQLEXPRESS共有サーバーに関連する心配がなくても問題なく動作するはずです)、同じ接続文字列でデータベースへの接続に失敗します。

データベースファイルはApp_Data、開発環境とデプロイメント環境のアプリケーションのディレクトリ内に保存されます。デプロイメント環境でデータベースに接続できないようです(ファイルはそこにありますが)。

接続文字列に追加できるように、ホストにユーザー名/パスワードを教えてもらう必要がありますか?または、他の方法で接続文字列を変更する必要がありますか?

4

1 に答える 1

1

私はSQLExpressを使用したことがありません(怒りはあまりありません)が、IISを使用すると、デバッグ時とは異なるアカウントで実行されていることを覚えておいてください。これは、IISアプリプールが実行するように構成されているアカウントになります。したがって、統合セキュリティを使用してこのデータベースにアクセスする場合は、その特定のアカウント(たとえば、どちらでもNETWORK_SERVICE)を認識するようにデータベースを構成する必要があります。

ホスティング環境では、SQL認証を使用する方がおそらく良いでしょうが、パスワードをどこかに保存する必要があるため、明らかに安全性は低くなります。また、DBのセキュリティ設定を変更する必要があります。

それ以外の場合、アプリプールが実行されているアカウントがわかっている場合は、そこからの接続を受け入れるようにDBを構成するだけです。

于 2012-08-13T22:50:01.370 に答える