2013-05-28 49 views
0

我正在使用WebSites开始使用Windows Azure,现在我正面临在我的站点中需要Crystal Reports的情况,所以我正在寻找一种方法来安装Redistribute文件以在我的网页中使用它来生成报告。有没有更新云应用程序而不是重新部署的方法?

我按照这个页面:

http://dotnetspeak.com/2012/07/running-crystal-reports-on-windows-azure

因此而不是一个简单的网站,我会使用的云应用程序。不幸的是,我经常更新我的网站(在Windows Azure项目中的角色)。

每次我更新我的MVC项目时,是否需要将我的云应用程序的所有时间重新部署?因为它需要很长时间(如一个小时,因为我包含一个MSI安装程序)

谢谢

回答

0

除非你建立一些自定义扩展到应用程序中的一些非常强大的依赖注入,是的,你必须重新部署。

+0

你认为我能做什么?我的意思是,我需要速度来更新我的MVC4项目(WebRole)和cloudapp以使CrystalReports运行时。我找不到另一个建议:( –

+0

您正在使用**网站**或**网络角色**?我看到您发布冲突的信息在这一点上,这是重要的。 – Jaxidian

+0

最初,网站 –

0

编辑:再次重新阅读您的问题后,我意识到您正在使用Windows Azure网站。

完成这个正确的方法是使用webrole而不是网站

你需要做的是安装程序存储在云存储一个blob。

然后,您可以从blob下载Azure启动任务并执行安装程序。

如果可能,您还可以使用WebPICmdline(即Web平台安装程序命令行)从启动任务中为您下载并安装。

Steve Marx在使用Azure启动任务方面做了一些工作。这里是他们http://blog.smarx.com/posts/windows-azure-startup-tasks-tips-tricks-and-gotchas

0

之一添加位@罗伯特的回答是:如果MSI的实际执行走一个小时,那么这是不是一个很好的用例的Web /辅助角色。任何需要超过几分钟的事情都不适合无状态可扩展模型。如果是这种情况,则应考虑运行虚拟机以运行Crystal Reports。然后,你可以使用你的网络角色的一切。

另一方面,如果一小时的时间大部分被上传的MSI所消耗,那么我完全符合Robert的要求:将MSI存储在一个blob中,然后将其下载到您的角色启动时的实例。

0

我建议将您的单个云项目拆分为两个 - 仅适用于Crystal Reports。通过这种方式,您可以将其与MVC站点分开部署。您也可以在启动任务中构建额外的智能,可能检查是否已安装Crystal。不过,我认为拆分起来就足够好了你

0

通常情况下,更新过程不会导致你的webrole的完全重新的形象,只有为approot被破坏了!在这里,你可以找到关于什么是对更新和部署发生了非常详细的资料:http://msdn.microsoft.com/en-us/library/windowsazure/hh472157.aspx

这是什么意思你的问题?代码部署是一个“就地更新”过程。如果您将Crystal Reports安装在Drive C:或D中:它不会在每个部署中被破坏。

在您的启动任务中,您必须检查软件是否已安装。如果没有安装,只需安装它,如上面提到的驱动器C:或D:

编辑:我得到了一点:你的更新过程需要很长的时间,因为你的MSI的文件大小?如果是这样,我还建议将MSI上传到Blob-Storage。

相关问题