1

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

等待角色启动...系统启动任务正在运行

站点已部署...

正在恢复...

等待角色启动...系统启动任务正在运行

站点已部署...

正在恢复...

等待角色启动...系统启动任务正在运行

站点已部署...

正在恢复...

这一直在发生。

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

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

谢谢阿努

4

4 回答 4

2

As Sandrino mentioned, startup tasks can cause this. Whenever I see that pattern, it seems that most of the time I have assemblies referenced that are on on the Azure VM that I am being deployed to.

There is a tool out there: http://gacviewer.cloudapp.net/ that will compare assemblies in your csproj file with the current Azure OS version to locate any assemblies that will need to be marked as CopyLocal=true. Note that this tool is looking at osfamily=2. VS defaults to creating osfamily=1 in your cscfg file.

This seems highly likely to me since you are deploying an MVC 4 project probably with a version of EntityFramework that is not on the Azure VM.

于 2012-09-10T15:40:16.050 回答
0

我得到了解决方案,问题是运行启动任务以安装 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 "install-mvc4-task"

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

于 2012-09-10T17:49:03.127 回答
0

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

于 2012-09-10T06:08:43.270 回答
0

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

于 2015-07-14T13:00:47.560 回答