Как исправить "имя соединения "LocalSqlServer" не было найдено в конфигурации приложений или строка подключения пуста.- ошибка?

у меня есть ASP.NET проект с использованием SQL Server CE 4.0 с Entity Framework 4.0. Он отлично работает на моем локальном компьютере.

когда я перемещаю его на удаленный сервер и пытаюсь войти в административную часть программы, я получаю следующую ошибку:

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

Он ссылается на следующую строку в машину.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>

Теперь, это правда, у меня нет заявления" AspNetSqlMembershipProvider " в моей сети.config, который ссылается на строку подключения с именем "LocalSqlServer". Вместо этого у меня есть следующее:

<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.

почему это работает локально, а не удаленно? (Удаленный сервер является общим сервером - у меня нет доступа к машине.конфиг.)

Если я изменю имя строки подключения на LocalSqlServer, будет ли это работать? И если да, то почему это будет работать другой путь на моем локальном компьютере? Машина.конфигурация на моем локальном компьютере выглядит так же, как на удаленном сервере, насколько я могу судить.

2 ответов


вам нужно удалить его из конфигурации:

<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>

это обычно между appSettings и system.data теги.