我有一个使用SQL Server CE 4.0和Entity Framework 4.0的ASP.NET项目,在本地计算机上运行良好。
然而,当我将其移动到远程服务器并尝试登录程序的管理员部分时,出现以下错误:
它引用了远程服务器上machine.config中的以下行:
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看起来与远程服务器上的相同。