- .net/
- .net Azure WebRole MVC4安装问题
.net Azure WebRole MVC4安装问题
.net Azure WebRole MVC4安装问题,.net,azure,asp.net-mvc-4,.net,Azure,Asp.net Mvc 4,我正在尝试将ASP.NETMVC4应用程序部署到WindowsAzure,我有一个安装的启动任务
MVC4。但我的角色未联机,部署状态为:
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
这是不断发生的
我注意到的另一件有趣的事情是,如果我将RDP添加到角色实例中,那么角色将变为就绪状态
谁有主意,这里出了什么问题
谢谢
Anu这可能是由导致问题的启动任务引起的,也可能是
我正在尝试将ASP.NETMVC4应用程序部署到WindowsAzure,我有一个安装的启动任务
MVC4。但我的角色未联机,部署状态为:
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
正在等待角色启动…系统启动任务正在运行
已部署站点
恢复
这是不断发生的
我注意到的另一件有趣的事情是,如果我将RDP添加到角色实例中,那么角色将变为就绪状态
谁有主意,这里出了什么问题
谢谢
Anu这可能是由导致问题的启动任务引起的,也可能是由于您的web应用程序工作不正常。由于诊断模块可能需要几分钟时间将日志发送到您的存储帐户,我建议您通过RDP连接,并查看事件查看器(在应用程序下)中发生的情况(查找错误和警告)。正如Sandrino提到的,启动任务可能会导致此问题。每当我看到这种模式时,似乎大多数时候我都引用了部署到的Azure VM上的程序集
有一个工具:它将比较csproj文件中的程序集与当前Azure OS版本,以找到需要标记为CopyLocal=true的任何程序集。请注意,此工具正在查看osfamily=2。VS默认为在cscfg文件中创建osfamily=1
这在我看来很有可能,因为您部署的MVC 4项目可能使用的EntityFramework版本不在Azure VM上。我得到了解决方案,问题是运行启动任务的用户(我认为其“系统”)是否允许安装MVC4。我已更新了启动脚本(installmvc4 main.cmd),以执行以下操作:
创建另一个脚本“installmvc4 impl.cmd”,该脚本调用power shell脚本“installmvc4.ps1”,执行策略设置为unrestricted
创建powershell脚本“installmvc4.ps1”,以使用包中包含的安装程序安装mvc4(我从下载它)
创建一个用户,将其添加到管理员组,并计划使用此用户运行“installmvc4 impl.cmd”的任务
这里是脚本“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"
REM创建dos脚本installmvc4-impl.cmd以调用powershell脚本安装MVC4
如果“%%仿真%%”==“true”转到:EOF>%~dp0installmvc4-impl.cmd,则回显
echo powershell-执行策略不受限制%~dp0installmvc4.ps1^>installmvc4.ps1.log 2^>^&1>>%~dp0\installmvc4-impl.cmd
echo exit^/B 0>>%~dp0installmvc4-impl.cmd
REM创建powershell脚本installmvc4.ps1以安装MVC4
回显调用表达式“%~dp0AspNetMVC4Setup.exe/q/norestart”>%~dp0installmvc4.ps1
REM创建一个管理用户,并使用该用户运行安装MVC4的脚本来安排任务
net用户anuchandy管理员@#123/add.1
net本地组管理员注册/添加
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。您的启动脚本文件最后应该有EXIT/B 0命令。您不需要运行MVC4的安装程序。您只需要在项目中将引用标记为CopyLocal=true。在操作系统映像上提供mvc3之前,这是由mvc3 web角色项目模板完成的。