【问题标题】:Role instances are taking longer than expected to start - Is there a new solution to this problem?角色实例的启动时间比预期的要长 - 这个问题有新的解决方案吗?
【发布时间】:2016-02-18 03:00:36
【问题描述】:

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

“用于 Microsoft Visual Studio 的 Windows Azure 工具

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

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

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

现在我要重新启动一次!!!!!!

【问题讨论】:

  • 我从未听说过(或经历过)这...您是否从 Microsoft 获得了更多关于此的信息? (也许是有支持的线程之类的?)如果是这样,我可以尝试追踪错误并查看发生了什么。
  • 开发者需要使用完整的 IIS 吗?我有多种配置 - 我使用 HWC 进行开发,使用完整的 IIS 进行测试/生产,发现生活更轻松。
  • @smarx - 我会看看我能找到什么。我确实在网络上的一些地方看到过它,甚至看到 MS 的评论说这是一个已知问题。这对我来说是个大问题。当我输入这个时,我可以看到 VS 图标闪烁黄色。我知道那是什么意思:-(
  • 这个发送到 net.pipe://localhost/iisconfigurator 的请求操作在配置的超时 (00:01:00) 内没有收到回复。分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作,或者因为服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理转换为 IContextChannel 并设置 OperationTimeout 属性)并确保服务能够连接到客户端。

标签: azure azure-worker-roles


【解决方案1】:

我遇到了同样的问题,但最终可以在解雇 2 或 3 个

后启动它

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

消息框。

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

要获取 UI,请右键单击 Solution ExplorerRoles 文件夹中创建的角色。

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

【讨论】:

    【解决方案2】:

    据我了解,有几个不同的因素会导致此问题。

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

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

    ServiceDefinition.csdef

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

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

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

    【讨论】:

    • 谢谢!这也是我的问题。
    • 这个答案为我指明了正确的方向。就我而言,我无法将任务设置为“后台”,因为它必须在我的网络角色开始之前执行。相反,我在 .cmd 文件的末尾添加了“exit /B 0”。如果任何“简单”任务以非零错误级别退出,Azure 将不会继续启动。
    【解决方案3】:

    2016 年 2 月引入了导致此问题的新原因。

    使用 Windows 8.1、Visual Studio 2012 Update 5 和 Azure 模拟器 2.3

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

    卸载更新可修复模拟器。

    控制面板 > 所有控制面板项目 > 程序和功能 > 已安装的更新

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

    (升级到 Windows 10 也可以解决问题。)

    【讨论】:

    • 谢谢!我想知道,您是如何发现它与 Windows 更新有关的?
    • 我的 5 位同事中有 4 位遇到了问题,没有问题的同事禁用了自动更新。我们度过了一个愉快的下午,卸载更新直到我们发现问题
    • 我遇到了同样的问题,卸载此更新为我解决了这个问题。非常感谢!
    • 重启后对我来说非常完美。谢谢。
    【解决方案4】:

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

    重启服务后,一切都开始工作了

    【讨论】:

    • 这个对我有用(到目前为止,已经有几个小时了),但只需要删除 \AppData\Local\dftmp
    【解决方案5】:

    对我来说,问题与缓存有关。问题始于一个警告,上面写着“无法安装缓存....exe”,但我只看到过一次错误。之后,模拟器每次都停止。阅读this blog 后,我尝试禁用然后重新启用缓存,从而解决了问题。

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

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

    之前此连接字符串一直指向云存储连接。

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

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

        <Import moduleName="Diagnostics" />
        

        到:ServiceDefinition / WebRole / Imports 节点。

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

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

        在:ServiceConfiguration / Role / ConfigurationSettings 下用于 Web 角色。

        仅供参考。我的 schemaVersion 的服务定义值为“2012-10.1.8”。当我将解决方案从 SDK 1.7 迁移到 1.8 时,可能会出现此问题

        【讨论】:

          【解决方案8】:

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

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

          (我的 AzureSDK 是 2.0)

          【讨论】:

            【解决方案9】:

            类似于上面的答案。我正在运行启动脚本,它正在运行 appcmd.exe,但是由于错误,我尝试解锁的部分导致错误,导致角色无法启动。

            我用过:

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

            但这是一个错误,应该是

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

            【讨论】:

              【解决方案10】:

              对我来说,这只发生在我选中“启用缓存”复选框时。对我来说,问题是我在 UNC Share 上运行我的项目(实际上它在我的 macbook 上的 VM 中运行)。当我在工作角色上选中“启用缓存”框后启动调试器时,它就会挂起。来看看,它大约每 2 秒在 C:\Windows\System32\%LOCALAPPDATA%\CrashDumps 中创建一个 160MB 的转储文件。在调试其中一个之后,我可以看到第一个错误是当它尝试在我的工作角色的缓存内容上启动 cmd.exe 时,它​​说 CMD 不能在网络共享上运行,所以它默认为 windows/system32 或东西。

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

              【讨论】:

                【解决方案11】:

                我也遇到过同样的问题,花了很多时间检查这篇文章的所有其他答案。我只是在角色下删除我的应用程序,然后在当前解决方案中再次添加 webrole 项目。对我来说工作得很好。

                【讨论】:

                  【解决方案12】:

                  我有类似的问题。在调试会话开始期间,我正在执行一个 .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 后,未出现此问题。我能够像往常一样调试应用程序。

                  【讨论】:

                  • 我遇到了同样的问题,“以管理员身份运行”已解决,在我的 .cmd 中,它尝试将 dll 复制到“system32”文件夹。
                  【解决方案13】:

                  我的环境是: Windows 服务 2012 R2 + VS 2013 更新 3 + Azure 工具 2.2

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

                  【讨论】:

                    猜你喜欢
                    • 2013-06-25
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-12-15
                    • 1970-01-01
                    • 2011-07-04
                    • 1970-01-01
                    • 2011-04-05
                    相关资源
                    最近更新 更多