我有一个连接到mysql数据库的ASP.NET应用程序。如果在服务器上我在visual studio(使用开发服务器)中运行网站,它可以正确连接到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 :(得分:0)
使用Visual Studio进行调试时,该帐户是本地管理员,并且拥有最有可能的权限。 IIS默认应用程序池帐户没有这些提升的权限。确保运行IIS站点应用程序池的帐户具有正确的权限,或者临时将帐户更改为本地系统以查看它是否与permssions相关。您可以使用FileMon
来跟踪默认帐户无法访问的文件或注册表项。
[编辑]
很有可能你将MySQL安装到像C:\MySQL
这样的地方,你只需要授予IIS应用程序池帐户对该目录的读访问权限,可能还有一两个注册表项。
答案 1 :(得分:0)
该站点未安装在根目录中,而是作为默认网站中的应用程序安装。如果我们将它作为根站点运行,它就可以运行。不知道究竟为什么。