TaskCanceledException使用.NET Nuget包

时间:2017-05-29 18:51:16

标签: c# google-cloud-platform google-cloud-spanner

运行一个简单的查询,比如针对一个小表的select,我得到了结果;使用更复杂的查询执行相同的代码,并且使用任务取消的异常错误输出。

        var executeSqlRequest = service.Projects.Instances.Databases.Sessions.ExecuteStreamingSql(
            new Google.Apis.Spanner.v1.Data.ExecuteSqlRequest()
                { Sql = sql_text, QueryMode= "NORMAL" },
            session);

        PartialResultSet resultSet = await executeSqlRequest.ExecuteAsync();

通过lib调试的更多信息 - 看起来套接字在处于使用状态时处理并且访问它导致任务被取消:

  

发生System.ObjectDisposedException消息:抛出异常:   System.dll中的“System.ObjectDisposedException”附加信息:   无法访问已处置的对象。

     

发生System.IO.IOException消息:抛出异常:   System.dll中的“System.IO.IOException”附加信息:无法使用   从传输连接读取数据:无法访问已处置的数据   宾语。对象名:'System.Net.Sockets.Socket'..

来自客户端代码调试的

  

任务已取消。 { “班级名称”:   “System.Threading.Tasks.TaskCanceledException”,“Message”:“一项任务   被取消。“,”数据“:null,”InnerException“:null,”HelpURL“:   null,“StackTraceString”:“at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n at   Google.Apis.Requests.ClientServiceRequest 1.<ExecuteUnparsedAsync>d__30.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Google.Apis.Requests.ClientServiceRequest
1.d__27.MoveNext(个)\ r \ n ---   从抛出异常的先前位置开始的堆栈跟踪结束   --- \ r \ n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ r \ n \ n
  在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n at   Google.Apis.Requests.ClientServiceRequest 1.<ExecuteAsync>d__26.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult()\ r \ n at   Discovery.ListAPIs.Program.d__10.MoveNext()in   C:\ Users \ Dave \ Documents \ Visual Studio   2015年\项目\ SpannerConsoleApp \ SpannerConsoleApp \的Program.cs:行   257“,”RemoteStackTraceString“:null,”RemoteStackIndex“:0,
  “ExceptionMethod”:“8 \ nThrowForNonSuccess \ nmscorlib,Version = 4.0.0.0,   文化=中性,   公钥= b77a5c561934e089 \ nSystem.Runtime.CompilerServices.TaskAwaiter \ nVoid   ThrowForNonSuccess(System.Threading.Tasks.Task)“,”HResult“:   -2146233029,“来源”:“mscorlib”,“WatsonBuckets”:null} ---

0 个答案:

没有答案