8

Entity Framework 4.0 で SQL Server CE 4.0 を使用する ASP.NET プロジェクトがあります。私のローカルコンピューターでは問題なく動作します。

ただし、リモートサーバーに移動して、プログラムの管理部分にログインしようとすると、次のエラーが表示されます。

The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.

リモート サーバーの machine.config で次の行を参照します。

Line 237:    <membership>
Line 238:      <providers>
Line 239:        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
Line 240:      </providers>
Line 241:    </membership>

さて、私の web.config には、"LocalSqlServer" という接続文字列を参照する "AspNetSqlMembershipProvider" ステートメントがありません。代わりに、次のものがあります。

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="PUGConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>

これは実際にはローカルで機能します。接続文字列の名前は、LocalSqlServer ではなく PUGConnection です。

これがリモートではなくローカルで機能するのはなぜですか? (リモート サーバーは共有サーバーです。machine.config にはアクセスできません。)

接続文字列の名前を LocalSqlServer に変更すると機能しますか? もしそうなら、なぜ私のローカルコンピュータで逆に動作するのでしょうか? 私が知る限り、ローカル コンピューターの machine.config は、リモート サーバーの machine.config と同じように見えます。

4

2 に答える 2

17

構成から削除する必要があります。

<remove name="AspNetSqlMembershipProvider" />

または、さらに良いことに、

<clear />
于 2012-07-26T22:02:47.170 に答える
4

接続文字列を構成ファイルに追加することもできます。使用されていない場合でも、構成内の他の場所を参照することで表示されるエラーを修正する必要があります。

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

これは通常、appSettingssystem.dataタグの間です。

于 2015-06-01T12:08:11.407 に答える