Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Azure-使用WebRoles时操作系统设置的持久性_Windows_Azure_Azure Web Roles - Fatal编程技术网

Windows Azure-使用WebRoles时操作系统设置的持久性

Windows Azure-使用WebRoles时操作系统设置的持久性,windows,azure,azure-web-roles,Windows,Azure,Azure Web Roles,我一直在看构建会议上的一些视频,比如:在WindowsAzure内部等等。 我从其中一个实例中得到的启示是,除非我将预配置的VHD加载到虚拟机角色中,否则,如果实例被关闭或回收,我将丢失可能已进行的任何系统设置 例如,我有一个帐户,有两个Web角色运行多个(小型)网站。为了实现这一点,我必须调整Hosts文件中的设置。我知道我的网站会在发生故障时继续运行,因为它们是在ServiceConfiguration.csfg中定义的,但是我的主机文件设置会在发生故障时继续运行到新实例吗 i、 e.我的w

我一直在看构建会议上的一些视频,比如:在WindowsAzure内部等等。 我从其中一个实例中得到的启示是,除非我将预配置的VHD加载到虚拟机角色中,否则,如果实例被关闭或回收,我将丢失可能已进行的任何系统设置

例如,我有一个帐户,有两个Web角色运行多个(小型)网站。为了实现这一点,我必须调整Hosts文件中的设置。我知道我的网站会在发生故障时继续运行,因为它们是在ServiceConfiguration.csfg中定义的,但是我的主机文件设置会在发生故障时继续运行到新实例吗


i、 e.我的web角色“模板”有多深/多全面?

在任何完全重新部署或重新映像时,都将重建
主机
文件

通常,您应该避免依赖操作系统创建的任何文件的更改。如果您的应用程序被迁移到另一台服务器,它将运行在一台新的虚拟机上,并拥有自己的新Windows副本,因此更改将突然消失

如果您在Azure“暂存”环境中执行部署,然后执行“交换VIP”,也会发生同样的情况:“暂存”环境将不会对操作系统文件进行更改

微软有意不公布Azure图像外观的内部细节,因为它们在未来很可能会发生变化,但目前

  • 驱动器C:保存启动分区、日志和临时数据,并且很小
  • 驱动器D:保存Windows映像
  • 驱动器E:或F:保存您的应用程序
在完全部署或重新映像时,您将收到一个新的虚拟机,以便重新创建所有三个驱动器。升级时,虚拟机将继续运行,但负载平衡器会在将新版本的应用程序部署到驱动器F:时迁移通信量。驱动器E:然后被卸下


因此,直接回答您的问题,“模板”是针对驱动器E:--任何其他内容都可能在您不知情的情况下更改,并且不可依赖。

Azure提供启动脚本,以便您可以在实例启动时进行配置更改。这些通常用于安装其他操作系统组件或进行IIS配置更改(如禁用空闲超时)


请参阅以获取示例。

现有答案在技术上是正确的,并回答了问题,但在一个web角色中托管多个网站根本不需要编辑主机文件。只需在ServiceDefinition.csdef中定义多个网站(具有不同的主机标题)。请参见

尽管创建一个Powershell脚本或一个C程序(在托管WebRole.cs的
OnStart()
方法中)来重新创建更改在技术上是可行的,但我不知道为什么您需要在服务器上更改
hosts
文件-您能澄清一下吗?通常,您会通过外部第三方DNS主机定义网站的DNS条目,最典型的是您域的注册商。您好。可以使用单个IP托管多个网站。在这种情况下,Azure默认提供单个IP地址(您可以购买更多)。而且这些网站足够小,它们不需要,或者在自己的web角色下运行成本低。所以我把它们从discountasp.net转移到Azure,并使用主机头文件为正确的站点提供服务。@nsm-你不需要为此更改服务器上的
主机
文件…@Jeremy-Thx我现在发现了这一点。现在很奇怪,我在这个主题上运行的每一次搜索都会显示多个资源,描述如何在sans hosts文件中进行搜索。这里有一段很棒的视频。我不知道我从哪里得到的第一轮信息。我一定是在这个想法中加入了其他东西。一直以来,你都没有这样做;在Azure中不需要主机头文件,或者这是某种合理的新功能?i、 太好了,杰里米回答了我的问题,现在你来了[我已经为我的下一个问题提供了答案…如何绕过擦除。thx。你不能。这是他们容错性和可扩展性的全部原则。从开发人员的角度来看,你只需要根据部署包和服务配置分配和设置资源。你为azure构建的所有内容都应该在这颗星中存活下来tup和teardown生命周期。这就是为什么您使用BLOB作为永久存储而不是本地驱动器的原因。哦,伙计,那更好。非常感谢。不过,我必须坚持接受的答案,因为这是我“错误”的正确答案问题。LMAO!!!天哪!你是云层上的那个家伙吗???!如果是的话,那太棒了。哇,直接从马嘴里说。一定要喜欢网…所以。你是“像”,就在那里。大家看,是他。是那个家伙,回答我的问题。太棒了。我打电话给妈妈。哈哈。我真的很荣幸。-)很棒的视频,马克思先生。有趣,信息丰富,专注,快速。真是太棒了。