C# MySql数据库连接问题

C# MySql数据库连接问题,c#,asp.net,mysql,C#,Asp.net,Mysql,我有一个ASP.NET应用程序,它连接到mysql数据库。如果在服务器上我在visualstudio(使用developmentserver)中运行该网站,它可以正确连接到mysql数据库 但是,如果在同一台服务器上使用IIS,则会引发异常“无法连接到任何指定的MySQL主机”。它配置为使用标识为“ApplicationPoolIdentity”的应用程序池 连接字符串类似于: <add name="MYSQLConnectionString" connectionString="uid=

我有一个ASP.NET应用程序,它连接到mysql数据库。如果在服务器上我在visualstudio(使用developmentserver)中运行该网站,它可以正确连接到mysql数据库

但是,如果在同一台服务器上使用IIS,则会引发异常
“无法连接到任何指定的MySQL主机”
。它配置为使用标识为
“ApplicationPoolIdentity”
的应用程序池

连接字符串类似于:

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


有什么问题吗?

当您使用Visual Studio进行调试时,该帐户是本地管理员,对所有可能的内容都有权限。IIS默认应用程序池帐户没有这些提升的权限。确保运行IIS站点应用程序池的帐户具有正确的权限,或者临时将该帐户更改为本地系统,以查看是否存在与权限相关的问题。您可以使用跟踪默认帐户在访问时遇到问题的文件或注册表项

[编辑]


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

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

您能显示您的连接字符串吗?IIS服务器是在您的开发机器上运行还是在服务器上部署应用程序?如果将应用程序部署在web服务器上,是否与网络管理员确认此web服务器可以访问MySQL数据库服务器?我在问题中添加了连接字符串。服务器是生产服务器(windows server 2008),我尝试在其上使用VS2010运行它(工作),在IIS下(不工作),您的生产服务器上运行VS2010?是的,我的客户端在那里临时安装了它以调试站点。实际上它还不是生产服务器。