Dot-Net

在應用程序配置中找不到連接名稱“LocalSqlServer”或連接字元串為空

  • January 21, 2021

所以昨天我在我的開發機器上安裝了 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 或修復它並解決此問題?有誰之前經歷過這個嗎?

小塊

也許某處有一個 web.config 包含:

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

您可能還需要仔細檢查您是否正在查看正確的 machine.config。每個框架版本都有單獨的 machine.config,對於 32 位和 64 位框架也有單獨的。

<clear />由於各種原因,我需要保留在連接字元串的頂部,雖然添加一個名為的虛擬連接字元串的解決方案LocalSqlServer有效,但我發現保留它很麻煩,原因是“我不知道我們為什麼需要它,但沒有它,應用程序將無法執行”。

我的解決方案是刪除roleManager下面的行,因為它是舊程式碼遺留下來的,不再需要了。

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

引用自:https://stackoverflow.com/questions/10984507