【发布时间】:2014-01-08 17:40:59
【问题描述】:
我正在使用MySQL Connector/Net 6.7.4 向 Windows 8 应用商店应用程序中的 MySQL 数据库发送和接收数据。它可以在一台机器上完美运行,但在另一台机器上却不行。
这是错误:
“System.AggregateException”类型的第一次机会异常发生在 mscorlib.dll 中 MySql.Data.RT.DLL 中发生了“MySql.Data.MySqlClient.MySqlException”类型的第一次机会异常 MySql.Data.RT.DLL 中发生了“MySql.Data.MySqlClient.MySqlException”类型的第一次机会异常 MySql.Data.RT.DLL 中发生了“MySql.Data.MySqlClient.MySqlException”类型的第一次机会异常 MySql.Data.MySqlClient.MySqlException:无法连接到任何指定的 MySQL 主机。 ---> System.AggregateException:发生一个或多个错误。 ---> System.Threading.Tasks.TaskCanceledException:任务被取消。 --- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.ThrowIfExceptional(布尔 includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task.Wait(Int32 毫秒超时,CancellationToken 取消令牌) 在 System.Threading.Tasks.Task.Wait() 在 MySql.Data.Common.MyNetworkStream.OpenConnection() 在 MySql.Data.Common.MyNetworkStream.Open() 在 MySql.Data.Common.MyNetworkStream.CreateStream(MySqlConnectionStringBuilder 设置,布尔 unix) 在 MySql.Data.Common.StreamCreator.GetTcpStream(MySqlConnectionStringBuilder 设置) 在 MySql.Data.Common.StreamCreator.GetStream(MySqlConnectionStringBuilder 设置) 在 MySql.Data.MySqlClient.NativeDriver.Open() --- 内部异常堆栈跟踪结束 --- 在 MySql.Data.MySqlClient.NativeDriver.Open() 在 MySql.Data.MySqlClient.Driver.Open() 在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder 设置) 在 MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() 在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 在 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 在 MySql.Data.MySqlClient.MySqlPool.GetConnection() 在 MySql.Data.MySqlClient.MySqlConnection.Open() 在QuantiView.Classes.clsGlobal.mMySqlConnect() MySql.Data.RT.DLL 中出现了“System.InvalidOperationException”类型的第一次机会异常 mscorlib.dll 中出现了“System.InvalidOperationException”类型的第一次机会异常 System.InvalidOperationException:连接必须有效且打开。 在 MySql.Data.MySqlClient.MySqlConnection.Throw(异常前) 在 MySql.Data.MySqlClient.MySqlCommand.Throw(异常前) 在 MySql.Data.MySqlClient.MySqlCommand.CheckState() 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior 行为) 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() 在 QuantiView.Classes.clsGlobal.d_20.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在QuantiView.Pages.p1Project.d_f.MoveNext()
以及连接代码:
public static void mMySqlConnect()
{
Debug.WriteLine("mMySqlConnect");
Debug.WriteLine("internet = " + IsInternet());
if (connection.Equals(null)) connection = new MySqlConnection(connectionString);
try
{
if (connection.State.Equals(ConnectionState.Closed)) connection.Open();
}
catch (MySqlException ex)
{
Debug.WriteLine(ex.ToString());
switch (ex.Number)
{
case 0:
Debug.WriteLine("Cannot connect to server. Contact administrator");
break;
case 1045:
Debug.WriteLine("Invalid username/password, please try again");
break;
}
}
}
两台机器都运行Win8.1完全更新,VS版本相同(2013也更新),引用和安装的程序集相同,连接到同一个网络。
【问题讨论】:
-
查看link。
-
您是否检查了两台机器的防火墙设置?两台机器上的防火墙设置是否相同?
-
解决方法的链接对 Brian 很有帮助,但它是为 winforms、WPF、Web 应用程序编写的,因为它建议更改 web.config、app.config 或 machine.config ... 没有在 Windows 8 商店应用程序中使用。
-
这是建议的解决方法...如上所述,解决方法是将这一行添加到您的应用程序的 *.config 文件中
标签: c# mysql windows-runtime