【发布时间】:2012-12-12 01:43:40
【问题描述】:
我有一个项目,具有一个 Web 角色和一个 Worker 角色。 每当我在本地测试时,我的 web 和 worker 角色都会按预期工作。 (注意,虽然本地版本使用 Azure Compute Emulator,但服务总线队列和消息队列使用实时云版本。) 但是,云服务工作者角色在某些操作期间有崩溃的趋势。它会导致实例“回收”并且消息卡在 Azure 服务总线队列中。直到我在本地运行云服务,它才成功处理了消息,然后将其从队列中删除。即使角色正常工作,Azure 也经常在仪表板上告诉我辅助角色运行“不健康”。
Azure 门户曾一度打印出以下错误:
未处理的异常:System.Reflection.ReflectionTypeLoadException
为此,我在我的项目中添加了异常处理,并在将更新部署到云后再次尝试,但同样的事情一直在发生。当我将异常处理添加到我的项目时,我不得不将 System.Reflection 库添加到我的工作角色中,但这让我更加困惑。我不明白为什么我在调用一个我什至最初没有在我的项目中使用的库时收到错误。
有人知道这个问题可能是什么吗?
更新:
我做了一些手动调试,并注意到异常在 Worker Role 的 Run() 中被调用。导致问题的代码行涉及使用实体框架调用数据库。具体线路是:
图像 imageEntity = db.Images.Find(ImgViewFromQueue.Id);
我想知道这个问题是否与未在 Azure 服务器上正确启用或配置实体框架有关。
【问题讨论】:
-
你能检查一下你是否遇到here列出的任何错误
-
我只是尝试通过将所有引用设置为 true 来执行他们在该页面上提到的事情,但它没有解决任何问题。
-
在您的工作角色中,您使用的是 Linq 还是 ADO.NET?
-
控制是否到达 OnStart()?如果是这样 - 将 OnStart() 和 Run() 实现包装到 try-catch 中,并使用调用堆栈和所有可能的详细信息捕获并记录异常。
-
@AshwinSingh 我正在使用实体框架(我认为是 ADO.NET)。
标签: .net azure azure-storage azure-worker-roles