Azure WebRole MVC4安装问题

时间:2012-09-10 05:04:54

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

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

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

已部署网站......

...恢复

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

已部署网站......

...恢复

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

已部署网站......

...恢复

这是不断发生的。

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

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

由于 ANU

4 个答案:

答案 0 :(得分:2)

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

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

这似乎很有可能,因为您正在部署一个MVC 4项目,可能是一个不在Azure VM上的EntityFramework版本。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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

  4. 这里的脚本'installmvc4-main.cmd':

    REM Create dos script installmvc4-impl.cmd to invoke the powershell script to install MVC4
    
    echo if "%%EMULATED%%"=="true" goto :EOF > %~dp0installmvc4-impl.cmd
    echo powershell -ExecutionPolicy Unrestricted %~dp0installmvc4.ps1 ^> installmvc4.ps1.log 2^>^&1 >> %~dp0\installmvc4-impl.cmd
    echo exit ^/B 0 >> %~dp0installmvc4-impl.cmd
    
    REM Create the powershell script installmvc4.ps1 to install MVC4
    
    echo Invoke-Expression "%~dp0AspNetMVC4Setup.exe /q /norestart" > %~dp0installmvc4.ps1
    
    REM Create an admin user and schedule task using this user to run the script that install MVC4
    
    net user anuchandy Admin!@#123 /add
    net localgroup Administrators 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 "install-mvc4-task"
    

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

答案 3 :(得分:0)

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