我在azure上托管了一个Web服务作为Web角色。 在此Web角色中,我重写Run()方法并按以下顺序执行一些数据库操作,以基本上充当辅助角色。
转到blob存储以获取一小组数据。
缓存此数据以供将来使用。
杀死一些太旧的斑点。
Thread.Sleep(900000);
基本上,操作在后台每15分钟重复一次。 当我在DevFabric上运行时,它运行正常,但是当部署时,天蓝色的门户卡在一个稳定角色的循环中,然后准备节点。
永远不要启动任何一个实例。 我已经启用了诊断功能,它没有向我显示任何暗示存在问题的信息。 我不知道为什么会发生这种情况。
答案 0 :(得分:1)
听起来像OnStart中的错误。你有没有办法尝试/捕捉整个函数并将错误转储到EventViewer?从那里,您将能够远程访问实例并调查错误
部署到云的配置很可能与在模拟器中运行的配置不同(SQL Azure防火墙权限,指向本地开发存储而不是ATS的指针等)。此外,请确保您的诊断指向真正的Azure帐户而不是本地Dev存储。
答案 1 :(得分:1)
我建议将此代码移至Run()
。在OnStart()
中,负载均衡器尚未显示您的角色实例,并且由于您在OnStart()
中引入了很长时间(确定无限延迟),这可能就是您看到的原因有关该角色试图稳定的消息(有关这些消息的更多信息是here。)
答案 2 :(得分:0)
当其他人努力帮助我时,我通常不喜欢回答我自己的问题,但是我觉得应该记录我用来解决这个问题的方法。
我在部署到Azure时启用了intellitrace,我能够看到抛出的所有异常并调查异常的原因。
Intellisense在解决我的部署问题方面至关重要。我建议任何人看到部署devfabric和部署到azure之间的不一致。