在Windows Azure云服务上更改.cshtml文件

时间:2013-03-26 18:10:29

标签: asp.net-mvc-3 razor azure azure-web-roles

我们有一个自定义CMS站点,管理员可以在其中对_Layout.cshtml进行更改(因为他们进行了大量更改)。该站点托管在Azure网站中,但现在我们将其迁移到云服务。

现在,管理面板正在读取并显示_Layout.cshtml的内容(实际上,〜/ Views / Shared文件夹中的所有文件都可以编辑),但是当应用程序尝试写入文件时,它会抛出此错误:拒绝访问路径'F:sitesrootViewsoasShared_Layout.cshtml'。

我们正在开发一种编辑布局文件的新方法,但在我们到达之前,我们需要快速修复! 我使用此方法写入文件:System.IO.File.WriteAllText(path,fileContents);

在本地,在windows azure模拟器中,这是正常工作,但不是在Azure上托管时。

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,我必须说即使您可以更新_Layout.cshtml文件也会遇到一些问题。

  1. 如果您有多个Web角色实例,一旦管理员更改了该页面,它将只更新该实例的文件,但默认情况下不会更改其他文件。你必须以某种方式同步它们。

  2. 如果您的实例已移至另一台虚拟机,由于某些原因(例如硬件故障或虚拟机资源重新分配),管理员所做的所有更改都将丢失。

  3. 所以我强烈建议您修改您的实施。如何将更改部分保存到BLOB,表或数据库中,然后在呈现页面时从数据库中检索内容。我认为这比修改页面本身更好。

    HTH。