角色实例花费的时间比预期的要长 - 这个问题有新的解决方案吗?

时间:2011-08-13 14:49:21

标签: azure azure-worker-roles

本周我已经重新启动了我的电脑50-100次。我发现在收到此消息之前,我通常可以在本地启动/部署3-4次:

“适用于Microsoft Visual Studio的Windows Azure工具”

角色实例的启动时间比预期的要长。你想继续等待吗?“

让我重新开始的解决方案是重启。

我知道这不是一个新问题。我记得MS同意这是一个问题,但有没有人有一个解决方案,不涉及回到托管Web核心。似乎这个问题是很多人得到的问题,并且在没有解决方案(我知道)的情况下已经存在了4-5个月或更长时间。

现在我将重新开始重新启动!!!!!

13 个答案:

答案 0 :(得分:15)

我有同样的问题,但最终可以在解雇2或3

之后开始
  

“角色实例的启动时间比预期的要长”

消息框。

然后我发现问题似乎是诊断已启用且存储帐户在角色配置(.cscfg)中设置为无效。
通过进入UI解决它并禁用诊断,我发现它运行正常。

要获取用户界面,请右键单击解决方案资源管理器角色文件夹中创建的角色。

enter image description here

然后我重新启用了Diagnostics并自动填充了“UseDevelopmentStorage = true”,这似乎工作正常。

答案 1 :(得分:15)

据我所知,有一些不同的因素可能导致这个问题。

对我来说,在为Azure部署创建Windows Identity Foundation启动任务后,我尝试使用Azure模拟器运行我的应用程序时遇到此错误。

基本上,我需要做的就是将启动任务的taskTypesimple更改为background

<强> ServiceDefinition.csdef中

<Startup>
  <Task commandLine="Startup\IdentityGac.cmd" executionContext="elevated" taskType="background"></Task>
</Startup>

根据您的问题,我不确定这是否适用于您的项目,但我认为至少值得一提。

您可以阅读我的完整博文here

答案 2 :(得分:9)

2016年2月引入了这个问题的新原因。

使用Windows 8.1,Visual Studio 2012 Update 5和Azure Emulator 2.3

安装此Windows更新:KB3126593将使您处于模拟器永远不会启动的情况,您将在模拟器UI中看到这一点。

enter image description here

卸载更新可修复模拟器。

控制面板&gt; <控制面板的所有项目>节目和特征&gt;已安装的更新

Microsoft Windows安全更新(KB3126593),右键单击,卸载。

(升级到Windows 10也解决了这个问题。)

答案 3 :(得分:4)

我也面临同样的问题。从查看模拟器UI我发现它试图从存储区域读取一些日期并且失败了。
所以我做了什么,我去了位置%appdata%\ local 并删除了文件夹中的所有数据
1. DevelopmentStorage
2. dftmp

在重新启动服务之后,每件事都开始工作

答案 4 :(得分:2)

对我来说,问题与缓存有关。问题始于一个警告说“无法安装缓存.... exe”,但我只看到错误一次。之后,仿真器每次都停滞不前。阅读this blog后,我尝试禁用然后重新启用缓存,这解决了问题。

在我进行进一步调查后,我发现关键问题是ServiceConfiguration.Local.cscfg中的这个条目:

      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />

以前,此连接字符串指向云存储连接。

答案 5 :(得分:1)

根据我的经验,如果调用OnStop()时你的一个角色没有停止,就会发生这种情况。寻找WaWorkerHost.exe(我想)。您也可以尝试杀死IisConfigurator.exe(或类似的东西)。当你的任务管理器列表显着缩短时,你知道你已经有了正确的流程: - )

答案 6 :(得分:1)

我遇到了同样的问题,发现以下步骤解决了这个问题(我在应用上述@RobPotter的答案时偶然发现了这个解决方案。)

首先,打开ServiceDefinition.csdef文件并添加以下条目:

<Import moduleName="Diagnostics" />

到: ServiceDefinition / WebRole / Imports 节点。

其次,将以下诊断配置设置添加到必要的.cscfg文件中:

<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />

用于Web角色的 ServiceConfiguration / Role / ConfigurationSettings

FYI。 schemaVersion的我的服务定义值是“2012-10.1.8”。当我将我的解决方案从SDK 1.7迁移到1.8

时,可能会出现此问题

答案 7 :(得分:0)

按照上述所有解决方案后,我无法解决问题。 最后,我决定不再让它停止我的编码,只是将StartUp项目从“云项目”更改为“WebRole项目”,并将F5,...... OK网站在我的IIS Express上正常运行。

所以,我认为,如果它可以发布到Azure,并且可以调试本地网站,那么就让它以这种方式工作,直到微软让它更容易使用。

(我的AzureSDK是2.0)

答案 8 :(得分:0)

与上述答案类似。我正在运行一个启动脚本并且它正在运行appcmd.exe,但是,由于错误,我试图解锁的部分导致错误,这使得角色无法启动。

我用过:

%windir%\ System32 \ inetsrv \ appcmd.exe解锁配置/section:system.webServer/security

但这是一个错误,应该是

%windir%\ System32 \ inetsrv \ appcmd.exe解锁配置/ section:system.webServer/security/access

答案 9 :(得分:0)

对我来说,这只发生在我选中“启用缓存”复选框时。对我来说,问题是我从UNC Share运行我的项目(实际上它在我的macbook上的VM中运行)。当我在检查辅助角色上的“启用缓存”框后启动调试器时,它就会挂起。快来了解一下,大约每2秒就在C:\ Windows \ System32 \%LOCALAPPDATA%\ CrashDumps中创建一个160MB的转储文件。在调试其中一个之后,我可以看到第一个错误是它试图在我的worker角色的缓存中启动cmd.exe并且它说CMD无法在网络共享上运行,因此它将默认为windows / system32或东西。

当我找到这个方便的花花公子7岁MS KB文章时:http://support.microsoft.com/kb/156276当我添加DisableUNCCheck REG_DWORD并在注册表路径0 x 1 (Hex)下将值设置为HKEY_CURRENT_USER\Software\Microsoft\Command Processor时像一个冠军一样开始了。希望这有助于其他人。

答案 10 :(得分:0)

我遇到了同样的问题,花了很多时间,包括检查这篇文章的所有其余答案。我只是在角色下删除我的应用程序,并再次在当前解决方案中添加webrole项目。并为我工作。

答案 11 :(得分:0)

我有类似的问题。我正在执行.cmd文件以在调试会话开始时注册从属DLL。 .CSDEF文件如下所示:

<ServiceDefinition name="WorkerRole.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
    <WorkerRole name="SampleWorkerRole" vmsize="Small">
         <Startup>
               <Task commandLine="register.cmd" executionContext="elevated" taskType="simple" />
         </Startup>
     </WorkerRole>
</ServiceDefinition>

使用“以管理员身份运行”选项启动Visual Studio后,未发生此问题。我像往常一样调试应用程序。

答案 12 :(得分:0)

我的环境是: Windows Service 2012 R2 + VS 2013 Update 3 + Azure Tools 2.2

卸载Windows更新KB3126593对我有用!!!