我正在windows azure上运行一个应用程序,MVC视图需要是动态的,我开始将它们作为记录存储在数据库中,但我非常希望将它们移动到物理位置。
我的想法是通过代码创建物理文件......效果很好,可以大大加快页面加载速度。这当然是在我意识到文件仅在角色的持续时间内可用
之前接下来我查看了一个启动任务,以便在角色启动时创建文件 - 然后我意识到除非我监视数据库中的更改,否则任何单独的实例都不会同步。
所以我从启动任务转移到角色的run方法中的函数,该方法每10分钟检查一次数据库以查看是否发生了更改。问题是这似乎扼杀了应用程序(至少在预热阶段)。
理想情况下,我想将run函数移动到它自己的worker角色,该角色可以坐在那里并将文件推送到Web角色实例,但我不确定如何从工作者访问Web角色本地存储角色。谁能告诉我这是否真的有可能?并希望指出我正确的方向来实现这一目标?
只是为了澄清我想要实现的目标
-View在Web角色上运行的用户界面中创建并存储在数据库中 - 单独的Web角色(前端)具有clientide应用程序,虚拟路径提供程序将视图请求指向本地存储(localresource) - 用于创建View结构并将其加载到客户端Web角色本地存储中的单独工作者角色
答案 0 :(得分:0)
我相信您具有与使用单独的Windows Server 2008 R2实例的情况完全相同的可能性。
我最好的猜测是创建一个Web服务或任何标准应用程序,可以从外部位置调用,在本地磁盘上创建实际文件(从传递给它的参数)并从中调用此Web服务工人角色定期。
当然还有许多其他解决方法,但我认为没有任何标准化方法可以从Azure中的单独角色访问本地存储。