iis 在应用程序配置中找不到连接名称“LocalSqlServer”或连接字符串为空

z4iuyo4d  于 2023-06-06  发布在  其他
关注(0)|答案(3)|浏览(424)

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

kgqe7b3p

kgqe7b3p1#

也许在某个地方有一个web.config包含:

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

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

lsmepo6l

lsmepo6l2#

由于各种原因,我需要将<clear />保留在连接字符串的顶部,虽然添加一个名为LocalSqlServer的虚拟连接字符串的解决方案有效,但我发现由于“我不知道为什么我们需要它,但应用程序没有它就无法工作”的原因而将其保留在周围是很混乱的。
我的解决方案是删除下面的roleManager行,因为它是旧代码的剩余部分,不再需要。

<system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
</system.web>
2guxujil

2guxujil3#

检查IIS后,右键单击默认Web API,然后单击高级设置,并检查您给出的物理路径是否正确。它指向正确的道路。

相关问题