所以昨天我在我的开发机器上安装了PHP和MySQL。从那时起,我在尝试运行我的一个.NET项目时遇到以下错误:
在应用程序配置中找不到连接名称“LocalSqlServer”,或者连接字符串为空。
它引用了Machine.Config的这一行:
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
我在线搜索,高低,可以确认我的machine.config有必要的连接字符串:
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="LocalMySqlServer" connectionString="" />
有趣的是,我在我的生产服务器(服务器2008)上执行了完全相同的安装PHP和MySQL的操作,并且没有问题。我的开发机器是Windows 7。
因为这个原因我的整个开发机器坏了。我如何修复machine.config或修复它并解决此问题?有没有人经历过这个?
猪兔
答案 0 :(得分:26)
也许有一个web.config包含:
<connectionStrings>
<clear/>
...
</connectionStrings>
您可能还想仔细检查您是否正在查看正确的machine.config。每个Framework版本都有单独的machine.configs,32位和64位框架也有单独的。(/ p>
答案 1 :(得分:0)
出于各种原因,我需要将 <clear />
保留在连接字符串的顶部,虽然添加名为 LocalSqlServer
的虚拟连接字符串的解决方案有效,但我发现将其保留在“我不知道我们为什么需要它,但没有它应用程序无法运行”的原因。
我的解决方案是删除下面的 roleManager
行,因为它是旧代码遗留下来的,不再需要了。
<system.web>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
</system.web>