我正在使用MySQL Connector/Net 6.7.4向Windows 8商店应用程序中的MySQL数据库发送和接收数据 . 它完美地适用于一台机器,但不适用于另一台机器 .
这是错误:
mscorlib.dll中出现'System.AggregateException'类型的第一次机会异常MySql.Data.RT.DLL中出现类型'MySql.Data.MySqlClient.MySqlException'的第一次机会异常 . 类型'MySql的第一次机会异常 . 在MySql.Data.RT.DLL中发生了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的System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,CancellationToken cancellationToken)的System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)处的内部异常堆栈跟踪结束 . MySql.Data上的MySql.Data.Common.MyNetworkStream.OpenConnection()MySql.Data.Common.MyNetworkStream.Open()MySql.Da()MySql.MreateStream.MyNetworkStream.CreateStream(MySqlConnectionStringBuilder设置,布尔unix)MySql.Data上的任务.Wait() MySql.Data.MySqlClient.NativeDriver.Open()中MySql.Data.Common.StreamCreator.GetStream(MySqlConnectionStringBuilder设置)的.Common.StreamCreator.GetTcpStream(MySqlConnectionStringBuilder设置)---内部异常堆栈跟踪结束---在MySql MySql的MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()中MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder设置)的MySql.Data.MySqlClient.Driver.Open()的.Data.MySqlClient.NativeDriver.Open() .Data.MySqlClient.MySqlPool.GetP ooledConnection()at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()at MySql.Data.MySqlClient.MySqlPool.GetConnection()at MySql.Data.MySqlClient.MySqlConnection.Open()at QuantiView.Classes.clsGlobal.mMySqlConnect()A MySql.Data.RT.DLL中发生类型'System.InvalidOperationException'的第一次机会异常mscorlib.dll中发生了类型'System.InvalidOperationException'的第一次机会异常System.InvalidOperationException:Connection必须有效并且打开 . 在MySql.Data.MySqlClient.MySqlConnection.Throw(异常前)在MySql.Data.MySqlClient.MySqlCommand.Throw(异常前)在MySql.Data.MySqlClient.MySqlCommand.CheckState()在MySql.Data.MySqlClient.MySqlCommand.ExecuteReader (CommandBehavior行为)位于QuantiView.Classes.clsGlobal.d_20.MoveNext()的MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()---从抛出异常的上一个位置的堆栈跟踪结束---在System.Runtime . 位于QuantiView.Pages.p1Project.d_f.MoveNext()的System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中的CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
和连接代码:
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年也更新),具有相同的引用和安装程序集,都连接到同一网络 .
1 回答
打开 Package.appxmanifest 打开 Capabilities 标签和 Check Private Networks(Client & Server)