簡體   English   中英

連接到 MS SQL 服務器時出錯

[英]Error connecting to MS SQL server

我在 web.config 文件中有以下連接字符串以連接到 MS Sql 數據庫。

<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Server=developer\SqlExpress;Integrated Security=True;Database=mydb" providerName="System.Data.SqlClient"/>

我在同一台機器上有 MS SQL 服務器和 MySQL 服務器。 當我嘗試運行該應用程序時,我在 machine.config 文件的第 285 行中收到以下錯誤。

錯誤:

解析器錯誤消息:使用方法 'mysql_native_password' 對用戶 '' 的主機 '' 的身份驗證失敗,消息:用戶 ''@'localhost' 的訪問被拒絕(使用密碼:NO)

<add name="MySqlSiteMapProvider"  type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

該錯誤與 mySQL 有關,但我正在嘗試連接 MS SQL。

我該如何解決這個問題?

使用 MySql Connector Net 安裝 Mysql 時會出現此問題。 當 Mysql Connector Net 安裝您的計算機時,它會根據您的 .net 版本配置您的“machine.config”。

有幾種方法可以解決它。

1) 您可以在提供程序中添加<clear />標簽。 “Machine.config”覆蓋您的自定義提供程序,因此要禁用它,我們在您的項目 web.config 中添加<clear />標記。

 <siteMap defaultProvider="SitefinitySiteMap">
  <providers>
    <!-- This line added. -->
    <clear />
    <add name="SitefinitySiteMap" type="Telerik.Sitefinity.Web.SitefinitySiteMap, Telerik.Sitefinity" />
  </providers>
</siteMap>

2) 第二種方法有點棘手,如果您將 Mysql 與 .net 一起使用,這可能會導致您的項目出錯。

首先,您需要找到“machine.config”的位置。 您可以在此處獲取更多信息: https : //stackoverflow.com/a/2325492/3801977

就我而言,位置是:

C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Config

打開您的“machine.config”,找到以下行並將其刪除:

<siteMap>
  <providers>
    <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
  </providers>
</siteMap>

我認為你應該嘗試在你的 web.config 中刪除它

<remove name="MySqlSiteMapProvider" />

問題不在於連接到 SQL Server。 問題是您的配置文件找到了一個名為MySqlSiteMapProvider的條目,該條目嘗試連接到我的 SQL Server,但它失敗了。 我不知道此提供程序的用途,但您必須從應用程序代碼中刪除它及其用法,或更新它,以便它使用 SQL Server,而不是缺少或配置錯誤的 mySql。

MySql 連接器正在創建問題。 您可以通過轉到控制面板->程序->程序和功能並右鍵單擊 MySql Connector Net [version] 來更改它,其中 [version] 是已安裝的 MySql Connector for .Net 的版本號,然后單擊更改。 然后單擊 Next->Change ,然后單擊 Web 提供商之前的下拉列表並選擇“整個功能將不可用”。 然后點擊完成。 你已經完成了。

您可以如下所示注釋掉提供者,而不是刪除該行。 它也會起作用。

<!-- <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/"/> -->

將以下內容添加到 web.config

<system.web>
    <siteMap enabled="true">
        <providers>
            <remove name="MySqlSiteMapProvider" />        
        </providers>
    </siteMap>
</system.web>

我有這個問題

如果您使用網站面板,請轉到面板>“網站”> 選擇網站並選中主頁“文件夾選項卡”中的“啟用寫入權限”

在 C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Config\\machine.config 路徑中​​找到 machine.config 配置文件並注釋下面的標記。

<add name="MySqlSiteMapProvider"  type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM