7

所以昨天我在我的开发机器上安装了 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 或修复它并解决此问题?有谁之前经历过这个吗?

小块

4

2 回答 2

30

也许某处有一个 web.config 包含:

<connectionStrings>
    <clear/>
    ...
</connectionStrings>

您可能还需要仔细检查您是否正在查看正确的 machine.config。每个框架版本都有单独的 machine.config,对于 32 位和 64 位框架也有单独的。

于 2012-06-11T17:34:11.397 回答
0

<clear />由于各种原因,我需要保留在连接字符串的顶部,虽然添加一个名为的虚拟连接字符串的解决方案LocalSqlServer有效,但我发现保留它很麻烦,原因是“我不知道为什么我们需要它,但没有它,应用程序将无法运行”。

我的解决方案是删除roleManager下面的行,因为它是旧代码遗留下来的,不再需要了。

<system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
</system.web>
于 2021-01-21T20:06:21.480 回答