我的网络作业做的很少,它会下载大约 3kb 的数据,然后更新我数据库中的一些信息。然而,在 webjob 启动之后,当它正在下载信息时(或刚刚),抛出异常
[07/27/2014 00:12:47 > b2b30d: ERR ] Unhandled Exception: OutOfMemoryException.
任何想法为什么会这样?
我已经使用完全相同的数据在本地运行 exe,它使用的内存最少,我看到最多 65mb,但我认为这不足以导致异常(或者 webjobs 有限制吗?)
我的内存使用统计(在 Azure 仪表板上)显示 512 MB / 小时的 54%(似乎我使用了很多,但仍然有很多可用)。文件系统存储 1024 MB 的 9% 我正在使用共享主机计划模式。
数据库在引发异常之前未命中,因此这不是数据库问题。
更新 - 使用 System.Diagnostic 在 Azure 上的诊断信息
[07/28/2014 09:07:19 > b2b30d: INFO] WorkingSet64:10.54297
[07/28/2014 09:07:19 > b2b30d: INFO] TotalPhysicalMemory:14335.55
[07/28/2014 09:07:19 > b2b30d: INFO] AvailablePhysicalMemory:8458.691
[07/28/2014 09:07:20 > b2b30d: INFO] OutOfMemoryException
[07/28/2014 09:07:20 > b2b30d: INFO] WorkingSet64:41.33594
[07/28/2014 09:07:20 > b2b30d: INFO] TotalPhysicalMemory:14335.55
[07/28/2014 09:07:21 > b2b30d: INFO] AvailablePhysicalMemory:8443.027
因此,我的程序启动并使用 10mb,做了一些工作,然后抛出了 outofmemoryexception,在抛出 outofmemoryexception 的那一点,内存增加到了 41mb。我不会认为使用 41mb 的 exe 对 webjob 来说太多了,为什么会发生这种情况?