我有一个有两个角色的云解决方案:1个Web角色,1个角色。该解决方案最近已从sdk 2.1升级,其工作正常。
如果我在没有调试的情况下运行解决方案,例如Ctrl-F5,模拟器将启动,角色将根据需要运行。我甚至可以将调试器附加到正在运行的角色,尽管我已经错过了所有角色初始化。
如果我运行调试,例如F5,模拟器启动;工作者角色陷入“角色状态繁忙”,Web角色陷入“角色不健康”,视觉工作室变得反应迟钝,需要任务管理器杀死。在VS中,较低RHS中的部署动画一直在运行。即使我注释掉RoleEntryPoint的所有OnStart和Run覆盖,也会发生同样的情况。无论应用程序生命周期有多早,我都无法触及任何断点,因此我非常确定它是模拟器基础架构/调试器问题。
我目前正在运行程序集绑定登录,并没有注意到任何异常。我检查并重新检查了所有项目中的sdk引用,并且所有依赖项都已升级。
如果我运行调试并启用了角色诊断,即使其他所有内容都被冻结,我也会将与配置更新相关的条目添加到输出中。 e.g:
[Diagnostics]: Checking for configuration updates 10/01/2014
我正在寻找新的调查线,已经耗尽了我能想到的一切。顺便说一句,这不是特定于机器的,我在几台机器上进行了测试,它们都表现出这种行为。
编辑:我应该注意,即使使用2.2 sdk,其他云解决方案也可以调试。
更新:我在日志中收到以下内容:
<Log>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Hang"/>
<EventID Qualifiers="0">1002</EventID>
<Level>2</Level>
<Task>101</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-01-17T18:53:34.000000000Z"/>
<EventRecordID>1216077</EventRecordID>
<Channel>Application</Channel>
<Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer>
<Security/>
</System>
<EventData>
<Data>devenv.exe</Data>
<Data>12.0.21005.1</Data>
<Data>2910</Data>
<Data>01cf13b4114dc59b</Data>
<Data>4294967295</Data>
<Data>C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe</Data>
<Data>a94194c4-7fa8-11e3-bed7-001e4fea6057</Data>
<Data/>
<Data/>
<Binary>54006F00700020006C006500760065006C002000770069006E0064006F0077002000690073002000690064006C00650000000000</Binary>
</EventData>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="ASP.NET 4.0.30319.0"/>
<EventID Qualifiers="49152">1325</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-01-17T18:56:06.000000000Z"/>
<EventRecordID>1216080</EventRecordID>
<Channel>Application</Channel>
<Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer>
<Security/>
</System>
<EventData>
<Data>Failed to initialize the AppDomain:/LM/W3SVC/6/ROOTException: System.SystemExceptionMessage: Failed to create AppDomain.StackTrace: at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)InnerException: System.Runtime.InteropServices.COMExceptionMessage: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))StackTrace: at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl) at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence() at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.Evidence.GetHostEvidence[T]() at System.Web.Hosting.ApplicationManager.GetDefaultDomainIdentity() at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)</Data>
</EventData>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="ASP.NET 4.0.30319.0"/>
<EventID Qualifiers="49152">1325</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-01-17T18:56:06.000000000Z"/>
<EventRecordID>1216080</EventRecordID>
<Channel>Application</Channel>
<Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer>
<Security/>
</System>
<EventData>
<Data>Failed to initialize the AppDomain:/LM/W3SVC/6/ROOTException: System.SystemExceptionMessage: Failed to create AppDomain.StackTrace: at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)InnerException: System.Runtime.InteropServices.COMExceptionMessage: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))StackTrace: at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl) at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence() at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.Evidence.GetHostEvidence[T]() at System.Web.Hosting.ApplicationManager.GetDefaultDomainIdentity() at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)</Data>
</EventData>
</Event>
</Log>
答案 0 :(得分:3)
我们的项目存在同样的问题。微软错误报告在这里:
在这个链接上还有一个(脏)方法来解决这个问题。我们希望MS能尽快解决这个问题。
答案 1 :(得分:2)
在尝试将调试器附加到Azure模拟器时,我一直挂起Visual Studio。这是在项目的SDK /开发环境升级之后。模拟器报告“角色状态不健康”,我不得不杀死并重新启动Visual Studio。原来问题是因为ServiceConfiguration包含:
<ServiceConfiguration osFamily="1">
我正在运行在Windows 8中运行的Azure模拟器和Visual Studio
更改为
<ServiceConfiguration osFamily="3">
为我解决了这个问题。
答案 2 :(得分:1)
我不得不卸载SDK 2.2和所有以前版本的SDK,然后重新安装2.2,一切正常。
答案 3 :(得分:1)
我仍然在研究原因和方法,但我已取得进展;我在现有解决方案中添加了一个新的云项目,并将现有角色添加到该项目中 - 我将旧的云项目留在原地以供参考。新的云项目是可调试的,所以现在我可以调查cdsef和cscfg的差异。
编辑:不幸的是我曾经略微跳过枪。新创建的云项目使用IIS Express,在将其切换到IIS时再次失败。编辑:通过删除除了一个配置的端点之外的所有端点(最初只有4个)并且只留下一个http / 80我可以调试,所以问题似乎是ssl或内部端点相关。
答案 4 :(得分:1)
更新到VS 2013 Update 2RC并安装Azure 2.3 SDK已解决此问题。 (我还没有将项目升级到2.3)
答案 5 :(得分:1)
我的情况非常类似于此。我有一个使用osFamily =“1”的Visual Studio 2010 Azure项目。在我获得Visual Studio 2013之后,我为它安装了最新的Azure SDK,现在它是SDK 2.3。我在Visual Studio 2013中打开了项目并完成了转换。
当我从Visual Studio 2013 运行项目而没有调试时,它将成功启动。当我尝试在调试模式(F5)下运行时,它只是试图启动计算模拟器。我最初没有更改osFamily设置,但后来我将其更改为正确的osFamily =“4”并且没有帮助。看看模拟器日志,很多东西都类似于黄疸的帖子。我的角色状态不健康开始了。它会做一些其他的事情,然后陷入无休止的循环“[诊断]:检查配置更新”。
最终为我修复的是将模拟器设置更改为使用“使用模拟器快速”。正如this article by Microsoft中所述,Emulator Express从Azure SDK 2.1开始出现,是2.3及更高版本的默认设置。但是,如果您从旧项目转换,那么它将设置保持为“使用完整模拟器”,这也需要完整的IIS。 Emulator Express使用IIS Express。我一开始以为可能只是对IIS Express的改变才产生了不同,但我发现黄疸最初只是IIS Express,所以我认为是Emulator Express的帮助。不确定每个人是否可以使用Emulator Express而不是Full Emulator,但它可以为我工作。