如何构建和部署简单的mono C#web api到ubuntu服务器?

问题描述:

我有一个安装了mono的ubuntu实例,并且想要安装另一台计算机上的简单api项目。如何构建和部署简单的mono C#web api到ubuntu服务器?

我没有本文中引用的“Web部署设置”选项。 http://www.monodevelop.com/documentation/creating-aspnet-projects/

如何将我的项目移动到服务器并启动它?

+0

https://blog.lextudio.com/2015/12/jexus-web-server-and-asp-net-cross-platform/视频剪辑显示如何安装Jexus Web服务器并运行简单的MVC5 Web应用程序。它也适用于Web API应用程序。 –

如果您想正确执行此操作,可能需要查看部署工具,如Capistrano或Chef。

首先,您需要创建Mono应用程序作为控制台应用程序。 Linux可以运行你的可执行文件,但是对于Mono应用程序还没有一个简单的Web主机环境,比如IIS。这当然意味着您的应用程序可能会退出异常,因此请确保您有足够的防御性编码以避免发生这种情况。

基本上,要移动文件,你可以使用SCP,只需scp -R <directory> <username>@<server>:/<path_to_copy_to>。一旦你有了这些文件,你就需要启动这个应用程序,而且我猜你希望将它作为一项服务运行,而不仅仅是按需服务。为了做到这一点,你需要创建一个Upstart脚本。您需要创建一个用于启动,停止并可能重新启动应用程序的作业。

如果将它添加到正确的运行级别,它将自动启动并在关机时停止。

+0

Mono网络应用程序可以在Apache(mod_mono),nginx(通过FastCGI)或Jexus Web服务器(完全集成)上运行。所以永远不需要转换为控制台应用程序。 –

+0

如果你要通过Nginx运行它,你可以使用Kestrel而不是FastCGI - http://druss.co/2015/06/asp-net-5-kestrel-nginx-web-server-on-linux/ – dsample

+0

虽然.NET Core不是Mono。 –