0

我有一个 ASP.NET 应用程序,它连接到一个 mysql 数据库。如果在服务器上我在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"/>

可能是什么问题呢?

4

2 回答 2

0

当您使用 Visual Studio 进行调试时,该帐户是本地管理员,并且很可能拥有一切权限。IIS 默认应用程序池帐户没有这些提升的权限。确保您的 IIS 站点应用程序池在其下运行的帐户具有正确的权限,或者暂时将帐户更改为本地系统,以查看是否与权限相关的问题。您可以使用它FileMon来跟踪默认帐户无法访问的文件或注册表项。

[编辑]

很可能您将 MySQL 安装到某个地方C:\MySQL,您只需要授予 IIS 应用程序池帐户对该目录的读取访问权限,并且可能还需要一个或两个注册表项。

于 2013-02-16T20:13:45.020 回答
0

该站点未安装在根目录中,而是作为默认网站中的应用程序安装。如果我们将它作为根站点运行,它就可以工作。不知道为什么。

于 2013-02-17T09:33:17.380 回答