当我在 Azure 上运行我的 WorkerRole C# 应用程序时,一段时间后 waworkerhost.exe 由于以下异常而崩溃:
Application: WaWorkerHost.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.CallbackException
Stack:
at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
我有一个为网络服务器生成负载的应用程序。我不关心实际响应,但我想控制每秒发出的请求数。因此,我有一个每秒触发一次并生成许多请求的计时器。我尝试了以下选项:
- Parallel.For 与 WebRequests
- 带有异步 WebRequests 的 For 循环
- 使用 ThreadPool.QueueUserWorkItem 循环(做 webrequest)
当请求数量增加时,会发生异常(8+ req/sec)。所有三个选项都有相同的例外。当我在本地 DevelopmentFabric 中运行该角色时,所有三个选项都可以正常工作。如果有人可以就可能出现的问题给我一些指示,我将不胜感激。如果您有其他想法从 Azure 和 C# 生成这种类型的负载,请分享您的想法。