0

この問題についてお役に立てば幸いです。接続の問題に関するいくつかのフォーラムといくつかのスタックオーバーフローのトピックを読み、それらのアドバイスを使用しました。接続の前にサーバー名を追加するだけだと言う人もいますが、それはその特定の人やローカル接続でも機能しますが、リモートではそれほど機能しないか、「SQLサーバーでのリモート接続を許可する」を有効にするだけでこれを行いました(すでに有効になっていました)が、それでも機能します助け無し。これは私の問題です:

ローカル マシンに asp.net mvc 3 Web サイトを作成しましたが、リモート SQL サーバーへの接続の開始時に問題が発生したため、ローカル マシンにも基本データベースを作成しました。そのデータベースで aspnet_regsql.exe を実行すると、すべてのテーブルが作成されました。次に、web.config に移動し、サーバー名で接続文字列を追加しました。

<add name="DefaultConnection" connectionString="data source= [***]\SQLSERVER;integrated security = true ;Initial Catalog=[dbname];" providerName="System.Data.SqlClient" />

また、web.config にも以下を追加しました。

<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>
<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</profile>
<roleManager enabled="true">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>

これで、ローカルでの開発とアプリケーションのテストがすべてうまくいきました。すべてが機能し、ユーザーを作成してデータベースに追加しました。

ライブに移行したいので、ライブ データベースに新しいデータベースを作成する必要があります。上記のすべての手順を同じように実行しました。変更された唯一のことは、接続文字列がリモート SQL サーバー IP にあることです。(リモート接続も許可しました)。

<add name="DefaultConnection" connectionString="data source=[ip address];integrated security = true ;Initial Catalog=aspnetdb;" providerName="System.Data.SqlClient" />

上記のすべてのメンバーシップ タグが webconfig に残っています。

それでも、ASP.Net Web サイト管理ツールにアクセスすると、次のエラーが表示されます。データベースへの接続を確立できませんでした。SQL Server データベースをまだ作成していない場合は、Web サイト管理ツールを終了し、aspnet_regsql を使用してください。コマンドライン ユーティリティを使用してデータベースを作成および構成し、このツールに戻ってプロバイダーを設定します。(私は aspnet_regsql を実行しました)

すべての助けに感謝します!

4

1 に答える 1

0

接続文字列から「統合セキュリティ」を削除すると、IIS アプリケーション プール アカウントを使用して SQL サーバーにログインできなくなります。

于 2014-12-31T04:09:35.643 に答える