Asp.net

如何修復“在應用程序配置中找不到連接名稱’LocalSqlServer’或連接字元串為空。”錯誤?

  • July 4, 2018

我有一個使用 SQL Server CE 4.0 和 Entity Framework 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>

這實際上在本地有效。連接字元串的名稱是 PUGConnection,而不是 LocalSqlServer。

為什麼這會在本地而不是遠端工作?(遠端伺服器是共享伺服器——我無權訪問 machine.config。)

如果我將連接字元串的名稱更改為 LocalSqlServer,它會起​​作用嗎?如果是這樣,為什麼它會在我的本地電腦上以另一種方式工作?據我所知,我本地電腦上的 machine.config 看起來與遠端伺服器上的相同。

您需要將其從配置中刪除:

<remove name="AspNetSqlMembershipProvider" />

或者,更好的是,

<clear />

您也可以嘗試將連接字元串添加到您的配置文件中。即使不使用它,它也應該通過在配置中的其他位置引用它來修復出現的錯誤。

<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標籤之間。

引用自:https://stackoverflow.com/questions/11678677