【问题标题】:Azure WebRole MVC4 installation issueAzure WebRole MVC4 安装问题
【发布时间】:2012-09-10 05:04:53
【问题描述】:

我正在尝试将 ASP .NET MVC4 应用程序部署到 Windows Azure,我有一个启动任务,它安装 MVC4。但是我的角色没有上线,部署状态是:

Wating for Role to start...系统启动任务正在运行

网站已部署...

正在恢复中...

Wating for Role to start...系统启动任务正在运行

网站已部署...

正在恢复中...

Wating for Role to start...系统启动任务正在运行

网站已部署...

正在恢复中...

这种情况一直在发生。

我注意到的另一件有趣的事情是,如果我 RDP 进入角色实例,那么角色就会变为就绪状态..

任何人都有一个想法,这里出了什么问题?

谢谢 阿努

【问题讨论】:

    标签: .net azure asp.net-mvc-4


    【解决方案1】:

    正如 Sandrino 所说,启动任务可能会导致这种情况。每当我看到这种模式时,似乎大多数时候我都引用了我要部署到的 Azure VM 上的程序集。

    有一个工具:http://gacviewer.cloudapp.net/,它将您的 csproj 文件中的程序集与当前的 Azure OS 版本进行比较,以找到任何需要标记为 CopyLocal=true 的程序集。请注意,此工具正在查看 osfamily=2。 VS 默认在你的 cscfg 文件中创建 osfamily=1 。

    这在我看来很有可能,因为您部署的 MVC 4 项目可能使用了 Azure VM 上不存在的 EntityFramework 版本。

    【讨论】:

      【解决方案2】:

      这可能是由导致问题的启动任务或您的 Web 应用程序无法正常工作引起的。由于诊断模块可能需要几分钟时间才能将日志发送到您的存储帐户,我建议您通过 RDP 连接并查看事件查看器(在应用程序下)以查看发生了什么(查找错误和警告)。

      【讨论】:

        【解决方案3】:

        我得到了解决方案,问题是运行启动任务以安装 MVC4 的用户(我认为是它的“系统”)的权限。我已更新我的启动脚本 (installmvc4-main.cmd) 以执行以下操作:

        1. 创建另一个脚本“installmvc4-impl.cmd”,该脚本调用 power shell 脚本“installmvc4.ps1”,执行策略设置为不受限制。

        2. 创建一个 powershell 脚本“installmvc4.ps1”以使用包中包含的安装程序安装 mvc4(我从 http://www.microsoft.com/en-us/download/details.aspx?id=30683 下载)

        3. 创建用户,将其添加到管理员组并安排任务以使用此用户运行“installmvc4-impl.cmd”。

        这里是脚本“installmvc4-main.cmd”:

        REM 创建dos脚本 installmvc4-impl.cmd 调用powershell脚本安装MVC4 如果 "%%EMULATED%%"=="true" 则回显转到:EOF > %~dp0installmvc4-impl.cmd echo powershell -ExecutionPolicy Unrestricted %~dp0installmvc4.ps1 ^> installmvc4.ps1.log 2^>^&1 >> %~dp0\installmvc4-impl.cmd 回声退出 ^/B 0 >> %~dp0installmvc4-impl.cmd REM 创建powershell脚本 installmvc4.ps1 安装MVC4 echo 调用表达式“%~dp0AspNetMVC4Setup.exe /q /norestart”> %~dp0installmvc4.ps1 REM 创建一个管理员用户并使用此用户安排任务以运行安装 MVC4 的脚本 网络用户 anuchandy 管理员!@#123 /add 网络本地组管理员 aunchandy /add schtasks /CREATE /TN "install-mvc4-task" /SC ONCE /SD 01/01/2020 /ST 00:00:00 /RL HIGHEST /RU anuchandy /RP Admin!@#123 /TR "%~dp0\installmvc4 -impl.cmd" /F schtasks /RUN /TN "安装-mvc4-task"

        注意:确保srartup任务installmvc4-main.cmd的字符编码为ANSI。

        【讨论】:

        • 您不需要为 MVC4 运行安装程序。您只需在项目中将引用标记为 CopyLocal=true。这是在 mvc3 在 os 映像上可用之前由 mvc3 Web 角色项目模板完成的。
        【解决方案4】:

        你的启动脚本文件最后应该有 EXIT /B 0 命令。

        【讨论】:

          猜你喜欢
          • 2012-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多