Windows Azure Web Role 的 IIS 重置
如果您是一名 Web开发人员,您很可能使用过“简单快捷”的iisreset命令重置运行不正常的
IIS主机。这种方法通常在经典的 Windows Server VM上非常有效。但是,如果您是在
Windows Azure上运行应用程序,请不要运行 iisreset。
如果您阅读了本文章,您可能也会想要浏览我们所有的博客文章,这些文章都非常精彩,我们希望它们能在您开发下一代
Microsoft Azure 应用程序时对您有所帮助。如果您愿意继续浏览,我想说一声非常感谢!
但是如果我们的博客文章并非您读书消遣或睡前阅读的理想选择,您之所以会阅读本文章,可能是因为您尝试在您的
Microsoft Azure VM 上手动重置 IIS,而且现在您已无法访问您的网站。如果是这样,请不要担心,您仍然还有一个快速轻松的解决办法(但请记得,将来不要在
Microsoft Azure Web Role 上运行 Reset IIS)。
为什么不应在 Azure上运行
IIS重置?
当您运行 IIS重置时,将发生的其中一件事就是,负责将客户端连接到您的网站的
Windows万维网发布服务 (W3SVC)会停止工作。
在经典的Windows Server中,W3SVC的“启动类型”为自动。因此,W3SVC服务将自动重启,一切正常运行。
但是在Windows Azure中,W3SVC设置为“使用命令行启动”,因此在您的Web
Role 内部运行的Windows Azure Agent能够在启动角色前配置W3SVC。与经典Windows
Server 中的IIS不同,Azure中的IIS角色并不是一直在运行的,而是由Azure平台控制其生命周期。
如果不使用IIS重置,该如何操作?
如果您在 Windows Azure中托管的
Web应用程序遇到问题,而且您认为此问题可能与 IIS主机有关,我们建议您采取以下操作:
1.尝试找出故障的根本原因,而不是暂时缓解症状。http://blogs.msdn.com/b/kwill/archive/2013/09/19/troubleshooting-scenario-5-internal-server-error-500-in-webrole.aspx上介绍的方法可能是一个很好的开始,或者也可以使用Visual
Studio 进行远程调试-http://msdn.microsoft.com/en-us/library/ff683670.aspx。如果您无法找到问题的根本原因,请联系Microsoft
Azure支持或在论坛中发帖,届时我们的支持团队可协助您确定问题所在。
2.确保您有多个角色实例,这样
Azure负载平衡器便可以将传入流量发送至正常运行的实例。您也可以考虑执行自定义负载平衡器探测,这样一来在
Azure 认为此角色正常运行但 IIS未正常工作时,负载平衡器仍可正确引导流量。
3.最后一招,如果您只是需要让网站快速恢复上线,晚些时候再考虑调试问题,您可通过WindowsAzure管理门户执行角色重启而非
iisreset。
按照如下步骤使网站恢复上线:
1.从您的
MicrosoftAzure Web Role或Worker Role内部,进入“开始”>services.msc
2.在
Services(Local)(服务(本地))列表中,向下滚动找到World
Wide Web Publishing Service(万维网发布服务)。找到了吗?
3.现在,右键单击World
Wide Web Publishing Service(万维网发布服务),然后单击 Start(启动)。好了!您的网站应该已经恢复上线。

但如果您的网站仍无法访问,建议您回到Azure管理门户,在Cloud
Service(云服务)下方找到INSTANCES(实例)选项卡,在您的Web
role 上点击Reboot(重启),重新启动您的VM,就像这样(如果您有多个角色实例,您只需要重启您在其中运行了“iisreset”的实例即可):

希望这些信息对您有所帮助!
本文翻译自:
http://blogs.msdn.com/b/windowsazure/archive/2014/04/30/iis-reset-on-windows-azure-web-role.aspx
Windows Azure Web Role 的 IIS 重置的更多相关文章
- Azure web role, work role 以及其他role
Azure web role, work role 以及其他role 如果没有创建过web role 和work role的话可以参考如下文章来创建一下web role 和work role. htt ...
- [Windows Azure] Windows Azure Web Sites, Cloud Services, and VMs: When to use which?
This document provides guidance on how to make an informed decision in choosing between Windows Azur ...
- Windows Azure Web Site (10) Web Site测试环境
<Windows Azure Platform 系列文章目录> 我们知道,在使用Azure Cloud Service的时候,会有2个不同的环境,称为Production环境和Stagin ...
- Windows Azure Web Site (11) 使用源代码管理器管理Azure Web Site
<Windows Azure Platform 系列文章目录> 熟悉Azure Web Site平台的读者都知道,我们可以通过FTP等方式,把本地的Web Application部署到微软 ...
- Windows Azure Web Site (13) Azure Web Site备份
<Windows Azure Platform 系列文章目录> 我们在使用Windows Azure Web Site的时候,经常会遇到需要对Web Site进行备份的情况.在这里笔者简单 ...
- [New Portal]Windows Azure Web Site (3) 创建Web Site和云端数据库
<Windows Azure Platform 系列文章目录> 在前一章的内容里,我介绍了使用Windows Azure Management Portal创建Web Site.本章,我将 ...
- Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
<Windows Azure Platform 系列文章目录> 我们知道,Azure Web Site (改名为Azure Web App)默认是可以保留Session的.Azure We ...
- 【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
问题描述 把Web Role服务发布到Azure Cloud Service后,需要在IIS的输出日志中,把每一个请求的HTTP Request Header中的User-Agent内容也输出到日志中 ...
- 为Windows Azure Web站点添加MIME类型解决文件下载失败的问题
这几天在倒腾Autodesk 360 Viewer,前面的文章也介绍过了,这将是一个全新的在线模型浏览工具.我做了个实验,把A360Viewer放在一个web 站点,然后发布到Windows Azur ...
随机推荐
- php中json_encode中文编码问题
1 <?php 2 class myClass { 3 public$item1=1; 4 public$item2='中文'; 5 6 function to_json() { 7 //url ...
- c语常用算法库(1)
1,冒泡排序 #include <iostream> using namespace std; int main(){ ]; // 一共n个数, n不超过1000. a用来保存这些数. , ...
- c代码中调用c++,c++代码中调用c代码
注意这里的c调用c++或者c++调用c的意思是.c文件中调用.cpp文件中的代码,或者相反 集成开发环境如vc++6.0或者vs都是通过文件后缀来区别当前要编译的是C代码还是C++代码,然后采用相应的 ...
- 使用SecureCRT网络连接树莓派
为了更加方便可以通过网络来连接.控制树莓派,使用SecureCRT可以通过网络来连接树莓派. 1.在树莓派上通过终端命令ifconfig 来查看当前树莓派的IP地址: IP地址 ...
- C语言入门(21)——使用DBG对C语言进行调试
C语言入门(21)--使用DBG对C语言进行调试 程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码 ...
- Codeforces 734F Anton and School(位运算)
[题目链接] http://codeforces.com/problemset/problem/734/F [题目大意] 给出数列b和数列c,求数列a,如果不存在则输出-1 [题解] 我们发现: bi ...
- Java数组复制
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src, int sr ...
- Linux学习之sed命令详解
概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...
- OC语法2——OC的类,方法,成员变量的创建
类的创建: 与Java不同的是,OC创建一个类需要两个文件(.h和.m文件) 1> xxx.h:声明文件.用于声明成员变量和方法.关键字@interface和@end成对使用. 声明文件只是声明 ...
- 本地搭建开发环境开发redis程序
1.因为redis是部署在linux环境下,远程要想连接到linux,首先将linux防火墙关闭: service iptables stop