在将我的ASP.NET WebRole部署到Azure并查看Azure Intellitrace之后,我注意到很多RoleEnvironment异常,它们发生在RoleEnvironment.IsEmulated。

我认为ServiceConfiguration中缺少某些内容,因为stacktrace中的倒数第二个调用始终是RoleEnvironment.GetConfigurationSettingValue。

现在,我搜索了此问题,但除了此链接外,我什么也没找到:

http://bretstateham.com/azure-serviceconfiguration-cscfg-changes%E2%80%A6/

但是我的服务配置是正确的。我认为设置是“IsSimulationEnvironment”吗?应该由Azure创建,但在我的情况下则不能,因为有例外。

而且我不能输入“?SimulationEnvironment?”。在我的配置中手动设置,因为它不符合serviceconfiguration的xml名称空间。

有人知道如何解决这个烦人的问题吗?

最佳答案

我认为您的RoleEnvironment尚不可用。即您正在检查RoleEnvironment.IsEmulated在其初始化之前...

试试这个,

while (!RoleEnvironment.IsAvailable)
     continue;//you can sleep sometime then continue
if (RoleEnvironment.IsEmulated)
{
  //Your code here
}

10-06 02:44