WaitHandleCannotBeOpenedExceptiononanAzureWebRolestartswithTask.Wait()返回后,以下(Web)角色入口点导致以下异常被抛出。publicclassWebRole:RoleEntryPoint{publicoverrideboolOnStart(){Task.Run(()=>{//任何东西都可以在这里,但是lamdbda也可以是空的...}).Wait();返回真;异常:在mscorlib.dll中发生类型为“System.Threading.WaitHandleCannotBeOpenedException”的第一次机会异常附加信息:不存在具有给定名称的句柄。显然这是从框架中抛出的。这个异常似乎是无害的,我也没有遇到任何问题。我还是很好奇,为什么会这样?有没有办法在actorstart方法中运行异步代码而不会引发此类异常?编辑:这是异常的调用堆栈:>mscorlib.dll!System.Threading.EventWaitHandle.OpenExisting(stringname,System.Security.AccessControl.EventWaitHandleRightsrights)UnknownMicrosoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal()未知Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRole()未知Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.StartRole.AnonymousMethod__2()Unknownmscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContextexecutionContext,System.Threading.ContextCallbackcallback,objectstate,boolpreserveSyncCtx)未知mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContextexecutionContext,System.Threading.ContextCallback调用lback,对象状态,boolpreserveSyncCtx)未知的mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContextexecutionContext,System.Threading.ContextCallback回调,对象状态)未知的mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()Unknown[NativetoManagedTransition]编辑2:这里是有问题的Azure运行时的来源:以上是C#学习教程:WaitHandleCannotBeOpenedExceptiononAzureWebRolestartswithTask。有用,需要多了解C#学习教程,希望大家多多关注—privatevoidStartRoleInternal(){stringenvironmentVariable=Environment.GetEnvironmentVariable("RdRoleId");字符串名称=RoleEnvironment.NormalizeEventName("Global\started_{0}",environmentVariable);尝试使用(EventWaitHandleeventWaitHandle=EventWaitHandle.OpenExisting(名称,EventWaitHandleRights.Modify)){eventWaitHandle.Set();}}catch(WaitHandleCannotBeOpenedException){}RoleEnvironment.TraceSource.TraceEvent(TraceEventType.Information,203,"角色入口点。调用Run():"+this.role);SystemEvents.LogEventToSystemEvents("WindowsAzureRuntime2.3.0.0",RuntimeEventType.OnRoleRunBegin,"角色正在运行:OnRun():"+this.role);this.role.Run();RoleEnvironment。TraceSource.TraceEvent(TraceEventType.Warning,204,"Roleentrypoint.COMPLETEDRun()==>ROLERECYCLINGINITIATED:"+this.role);SystemEvents.LogEventToSystemEvents("WindowsAzureRuntime2.3.0.0",RuntimeEventType.OnRoleRunEnd,"角色会回收:OnRun():"+this.role);RoleEnvironment.RequestRecycle();}本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:
