2013-02-16 184 views
0

我有一個ASP.NET應用程序,連接到一個mysql數據庫。如果在服務器上運行Visual Studio(使用開發服務器)的網站,它可以正確連接到mysql數據庫。MySql數據庫連接問題

但是,如果同一臺服務器上我使用IIS,異常'Unable to connect to any of the specified MySQL hosts'被拋出。它被配置爲使用標識爲'ApplicationPoolIdentity'的應用程序池。

連接字符串是這樣的:

<add name="MYSQLConnectionString" connectionString="uid=name;server=111.11.111.111;Pwd=password;database=dbname" providerName ="MySql.Data.MySqlClient"/> 

可能是什麼問題呢?

+0

你能顯示你的連接字符串嗎? – 2013-02-16 17:47:41

+0

IIS服務器是否在開發機器上運行,或者您是否在服務器上部署應用程序?如果您將應用程序部署在Web服務器上,您是否與您的網絡管理員檢查此Web服務器是否可以訪問MySQL數據庫服務器? – 2013-02-16 17:47:50

+0

我在問題中添加了連接字符串。服務器是生產服務器(Windows Server 2008),我試圖在VS2010(工作)和IIS下運行它(不起作用) – 2013-02-16 17:52:43

回答

0

該網站是不是安裝在根,但在默認的Web站點的應用程序。如果我們將它作爲根站點運行,它就可以工作。不知道爲什麼。

0

當使用Visual Studio調試您的帳戶是本地管理員,最有可能有權一切。 IIS默認應用程序池帳戶沒有這些提升的權限。確保您的IIS站點應用程序池所運行的帳戶具有正確的權限,或者臨時將該帳戶更改爲本地系統,以查看它是否是與權限相關的問題。您可以使用FileMon來跟蹤默認帳戶訪問時遇到的問題的文件或註冊表項。

[編輯]

最可能是你安裝了MySQL在某處像C:\MySQL,你只需要授予IIS應用程序池帳戶讀取訪問該目錄,以及可能的註冊表項或兩個。