C# 仅在发布后才会发生错误:“引用”;无法连接到任何指定的MySQL主机。”;

C# 仅在发布后才会发生错误:“引用”;无法连接到任何指定的MySQL主机。”;,c#,asp.net,mysql,html,C#,Asp.net,Mysql,Html,在开发过程中,程序运行良好,但一旦发布,我注意到我的元素没有正确填充。起初我认为这是更新面板的问题,但有人告诉我使用Firebug,这就是我看到抛出的错误 再次: “无法连接到任何指定的MySQL主机。” 我的代码(此部分来自web.config): 如果您能提供任何关于这一点的信息,无论是它为什么不起作用,还是它为什么在开发中起作用,而不是一经发布,我们都将不胜感激 谢谢 编辑:新信息 哦,天哪,这真让人发疯 因此,我的程序有第二个web.config文件,我之前在其中放入了一个连接字符串,其

在开发过程中,程序运行良好,但一旦发布,我注意到我的元素没有正确填充。起初我认为这是更新面板的问题,但有人告诉我使用Firebug,这就是我看到抛出的错误

再次: “无法连接到任何指定的MySQL主机。”

我的代码(此部分来自web.config):

如果您能提供任何关于这一点的信息,无论是它为什么不起作用,还是它为什么在开发中起作用,而不是一经发布,我们都将不胜感激

谢谢

编辑:新信息

哦,天哪,这真让人发疯

因此,我的程序有第二个web.config文件,我之前在其中放入了一个连接字符串,其中包含不正确的数据。当程序运行时,这就是它试图使用的,这就是为什么它不工作的原因。至少我是这么想的

当然,我是在认为它是同一个文件并试图更新它之后发现的。最后,我从旧文件中删除了连接字符串,您知道吗,我现在知道它使用的是正确的连接字符串

为我欢呼,对吗?没有

我现在知道它使用的是正确的连接字符串,但它仍然无法正常工作

话虽如此,我在中添加了一些更好的疑难解答,因此现在我有了以下内容:

    MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the             specified MySQL hosts. ---> System.Security.SecurityException: Request for the permission             of type 'System.Net.SocketPermission, System, Version=4.0.0.0, Culture=neutral,             PublicKeyToken=b77a5c561934e089' failed.
    at System.Security.CodeAccessSecurityEngine.Check(Obj ect demand, StackCrawlMark&             stackMark, Boolean isPermSet)
    at System.Security.CodeAccessSecurityEngine.Check(Cod eAccessPermission cap,             StackCrawlMark& stackMark)
    at System.Security.CodeAccessPermission.Demand()
    at System.Net.Sockets.Socket.CheckCacheRemote(EndPoin t& remoteEP, Boolean         isOverwrite)
    at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext,             AsyncCallback callback, Object state)
    at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback         callback,     Object state)
    at MySql.Data.Common.StreamCreator.CreateSocketStream (IPAddress ip, Boolean unix)
    at MySql.Data.Common.StreamCreator.GetStream(UInt32 timeout)
    at MySql.Data.MySqlClient.NativeDriver.Open()
    The action that failed was:
    Demand
    The type of the first permission that failed was:
    System.Net.SocketPermission
    The Zone of the assembly that failed was:
    MyComputer
    at MySql.Data.MySqlClient.NativeDriver.Open()
    at MySql.Data.MySqlClient.Driver.Create(MySqlConnecti onStringBuilder settings)
    at MySql.Data.MySqlClient.MySqlPool.GetPooledConnecti on()
    at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
    at MySql.Data.MySqlClient.MySqlPool.GetConnection()
    at MySql.Data.MySqlClient.MySqlConnection.Open()
    at WordsOfPower.testing.update_words() in C:\Users\AJ\documents\visual studio         2010\Projects\WordsOfPower\WordsOfPower\WordsOfPow er.aspx.cs:line 39
最终编辑:我更新了我的web.config以使用完全信任


确保web.config文件中的连接字符串正确

<add name="STRING_CONNECTION" connectionString="Server=[SERVER];Database=[DATA BASE NAME];Uid=[USER];Pwd=[PASSWORD];" providerName="MySql.Data.MySqlClient"/>

确保web.config文件中的连接字符串正确

<add name="STRING_CONNECTION" connectionString="Server=[SERVER];Database=[DATA BASE NAME];Uid=[USER];Pwd=[PASSWORD];" providerName="MySql.Data.MySqlClient"/>

这是一个信任问题

请参见这是一个信任问题


查看

许多需要检查的内容。首先,连接字符串在生产环境和开发环境中应该是相同的吗?您的生产服务器真的可以看到mysql框吗?只需指定:我的“生产”系统是我在winhost上购买的Web空间,而我的“开发”环境是我个人计算机上的Visual Web Studio 2010。也就是说,我正在连接同一个数据库,所以我根本不知道为什么需要更改连接字符串。我曾经尝试过添加一个端口,但这只是造成了一些问题。这个错误仅仅意味着web服务器找不到数据库服务器。这有很多不同的原因,例如DB服务器可能位于防火墙后面,不允许从您的主机访问。我想我可能已经解决了我遇到的问题,但我还没有完全能够解决它。服务器上的my web.config似乎是不正确的旧版本。由于某些原因,当我发布我的程序时,它拒绝更新。不幸的是,VS有时并不总是发布你认为它应该发布的所有内容。通常情况下,服务器日期/时间与您电脑的日期/时间不匹配。如果delta足够好,随机配置、aspx和其他一些文件就不会被推送。有很多东西需要检查。首先,连接字符串在生产环境和开发环境中应该是相同的吗?您的生产服务器真的可以看到mysql框吗?只需指定:我的“生产”系统是我在winhost上购买的Web空间,而我的“开发”环境是我个人计算机上的Visual Web Studio 2010。也就是说,我正在连接同一个数据库,所以我根本不知道为什么需要更改连接字符串。我曾经尝试过添加一个端口,但这只是造成了一些问题。这个错误仅仅意味着web服务器找不到数据库服务器。这有很多不同的原因,例如DB服务器可能位于防火墙后面,不允许从您的主机访问。我想我可能已经解决了我遇到的问题,但我还没有完全能够解决它。服务器上的my web.config似乎是不正确的旧版本。由于某些原因,当我发布我的程序时,它拒绝更新。不幸的是,VS有时并不总是发布你认为它应该发布的所有内容。通常情况下,服务器日期/时间与您电脑的日期/时间不匹配。如果delta足够好,随机配置,aspx和其他一些文件就不会被推送。我只是仔细检查了一下,看起来我在这方面做得很好。还在看,我想我可能已经找到了答案。我只是仔细检查了一下,看起来我在这方面做得很好。仍然在看,我想我可能已经发现了一些东西。是的,这就是我开始想的。是的,这就是我开始想的。
<add name="STRING_CONNECTION" connectionString="Server=[SERVER];Database=[DATA BASE NAME];Uid=[USER];Pwd=[PASSWORD];" providerName="MySql.Data.MySqlClient"/>