将Azure应用程序部署到Windows服务器

时间:2012-01-09 04:04:52

标签: asp.net deployment azure

我们正准备为学校创建一个以网络为中心的平台,我们计划在Azure中托管它。但是,公立学校有一些限制,阻止他们公开访问互联网,这意味着基于Azure的系统无法在那里工作。

是否可以将同一个项目部署到本地服务器和Azure云而不会破坏我们的代码库?

3 个答案:

答案 0 :(得分:7)

这取决于您在解决方案中使用的Azure的哪些方面。如果您有一个manilla ASP.NET应用程序,并且没有使用Azure依赖项(如AppFabric或任何Azure SDK,如blob存储),那么您将能够部署到IIS的标准实例。

如果您使用的是Azure依赖项,我会尽量在您的代码库中分离这些依赖项,根据实践来抽象任何依赖项。然后,您可以根据配置更改切换到不使用它们,并在部署到Windows时恢复为本地或存根替代。在运行CI / build时也是如此。

答案 1 :(得分:3)

这实际上取决于您的应用程序正在做什么。 Azure部署项目(.ccproj项目)和相关的.cspkg包不适用于Windows Server部署。

如果您的应用程序使用Windows Azure特定功能(例如,表存储),那么您将不得不以某种方式处理该内部部署。如果您希望在本地和Windows Azure上运行一个代码库,则可以采用依赖注入方法,该方法可以根据目标部署注入正确的功能实现。

答案 2 :(得分:1)

我和客户有这个真实世界的场景。他们的客户希望继续使用他们自己的服务器上安装的产品。与此同时,他们有更新的客户想要将他们的应用程序作为服务租用并使用即用即付模式。

这是否意味着两个代码库?不,但这意味着你必须愿意在开发抽象和控制反转方面增加额外的里程。

一般来说,我会这样解决这个问题:

  • 为Windows Azure设计,意味着使用适用于Windows Azure SDK的API。
  • 在真实的Windows Azure SDK和您的代码之间添加一个抽象层。
  • 为内部部署安装提供Windows Azure依赖项的备用实现。

也...

  • 使用已经存在的代码,例如Azure Contrib。这个OSS项目包含这样一个抽象层的开始以及其他希望有用的Windows Azure代码。

别忘了玩得开心! ;〜)