2012-09-28 91 views
4

在將ASP.NET WebRole部署到Azure並查看Azure Intellitrace後,我注意到了很多RoleEnvironment異常,它們都發生在RoleEnvironment.IsEmulated。訪問RoleEnvironment時遇到RoleEnvironment.IsEmulated

我以爲在ServiceConfiguration中缺少一些東西,因爲堆棧跟蹤中的倒數第二個調用始終是RoleEnvironment.GetConfigurationSettingValue。

現在我搜索這個問題後,但我什麼也沒找到,但這個鏈接:

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

但我的服務配置是否正確。我認爲設置?IsSimulationEnvironment?應該由Azure創建,但由於例外情況,不適用於我的情況。

而我不能把「?IsSimulationEnvironment?」在我的配置中手動設置,因爲它不符合serviceconfiguration的xml名稱空間。

有沒有人有一個想法如何解決這個煩人的問題?

+0

所以這是在SDK內部捕獲的異常,它不是從工作停止你的應用程序? –

+0

是的,這是正確的 - 此異常在SDK內部捕獲。但是我認爲這應該是不正常的,所以我認爲,我的環境中的某些東西是不正確的,或者如果有人也發現了這個問題。 – HeManNew

+0

如果您在模擬器中本地運行它,您應該能夠在本地驅動器中找到將具有該設置(「?IsSimulationEnvironment?」)的配置,例如:「C:\ Users \ \ AppData \ Local \ dftmp \ deployment ).config.xml「。在該文件中有一個配置設置,如:

回答

0

我認爲你的角色環境尚未提供給你。即要檢查它的初始化之前RoleEnvironment.IsEmulated ...

試試這個,

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