没有 IIS 的 C# Web 应用程序

C# web application without IIS

对于使用C# 开发的Web 应用程序,IIS 似乎是Web 服务器的标准选择。但是还有其他选择吗?我想为我的网络服务器使用 Linux。

据我所知,其他选项是:

  1. 让您的 Web 服务器程序自己处理 IIS 内容。 (只要你不需要很多IIS功能,这个不会太贵)

  2. 使用XSP

  3. 使用 Apache Tomcat 和 mod_mono

  4. 使用另一个 Web 服务器,例如 nginx or lighttpd(这甚至可以用 C# 实现吗?)

  5. 使用 OWIN 东西(是否有足够成熟的实现来考虑?)

  6. 还有什么我没有考虑过的……?

从长远来看,这些选项中的哪一个对于 Web 应用程序最可行?

我最关心的是项目的长期可维护性,而不是服务器能够处理大量负载。

选项 1

  1. 安装单声道+XSP
  2. 在不同的端口上使用 XSP 启动 ASP.NET 网络应用程序,例如8001
  3. 通过nginx代理这个端口到80

选项 2(更好)

  1. 等待 ASP.NET 5 (MVC6) 版本完整 Linux 支持
  2. 在不同端口上使用独立应用程序方法(类似 OWIN),例如8001
  3. 通过nginx代理这个端口到80

这两种方式都需要安装 Mono,我建议安装最新的,而不是 Ubuntu PPA 提供的那种。

此外,由于您担心长期问题,因此您真的应该等待选项 2,因为它会在接下来的几个月内发布。

如果您真的 等不及那几个月并且不想在测试版产品上工作然后迁移到稳定的唯一选项我看到的是 NancyFX 这是网络-用 C# 编写的应用程序框架,现在具有完整的 Linux 支持。