您的位置:首页 > 其它

Windows Azure Web Role 的 IIS 重置

2014-06-13 16:46 381 查看


如果您是一名 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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: