Fork me on GitHub

通过Mono 在 Heroku 上运行 .NET 应用

英文原文:Running .NET on Heroku

中文原文:在 Heroku 上运行 .NET 应用

自从加入了Heroku之后,我就想在这个平台上运行.NET程序。现在我很高兴向大家宣布,我们已经有了一个可用的环境reasonably workable Mono buildpack。我的目标是能够在Windows上使用Visual Studio创建一个ASP.NET MVC解决方案去创建一个Heroku的应用程序。它能够使用git命令push Heroku,构建Heroku,应用部署在MonoXSP网络服务器。

result主要是基于原先我工作的同事Brandur

开始

为了使用这个 .NET 编译包,先创建一个 ASP.NET MVC 4  网站,然后启用 NuGet 包仓库。为了使这个解决方案能在 Mono 和 xbuild 中运行,我们需要进行一些处理:

至此,我们修正了 Mono, NuGet 和编译包后,应该解决了那些障碍。

现在,我们将解决方案部署到 Heroku 里面去:

$ heroku create
$ heroku config:add BUILDPACK_URL=https://github.com/friism/heroku-buildpack-mono/  
$ git push heroku master

我已经编写了几个可以运行的例子。 TestingMono 是一个相当简单的的MVC网站,有一个后台线程每秒输出一条消息。 为了运行这个后台线程,添加一个 Procfile 来启动命令行线程:mono WorkerTest.exe。然后限制为1线程: heroku scale worker=1。另一个例子来自一个 AppHarbor  例子, 演示了 Heroku PostgreSQL 数据库的 的简单使用。 注意: connectionstring 是 从环境变量中读取的, 而不是像其他.NET应用一样从 Web.config 读取。 你可以在 这里 看到运行的例子。

总结

能够正常运行的:

  • 在 Mono 3.0.11 和 XSP 3.0.11 中运行 ASP.NET MVC 4.
  • NuGet 包仓库 所以你不用手动添加你的依赖库。
  • 编译输出缓存及增量编译,包括已下载的 NuGet 包的缓存。
  • 运行 EXE文件以作为后台工作线程。

需要添加额外处理的:

  • 向 Web.config 中的 appSettings 添加配置项。
  • 使更多的 Visual Studio 模板可以使用。
  • 寻找 XSP 的替代品 (如 nginx)。

请参考  README中的TODO. 欢迎大家参与到这个项目中来。我计划在将来再写一篇 blog 来解析编译包如何生成依赖库 (这里的话只有 Mono and XSP)。

PS. 我正在努力使 Visual Basic 运行起来。

 

相关文章:

学习 HeroKu 的架构设计

How to deploy Mono projects with Heroku

Heroku .NET buildpack update to Mono 3.2 and more

在Heroku上部署Java应用三步曲

posted @ 2013-09-15 08:37 张善友 阅读(...) 评论(...) 编辑 收藏