我有一个具有一个 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 服务器上未正确启用或配置实体框架有关。