【问题标题】:Can Mono run under IIS 7?Mono 可以在 IIS 7 下运行吗?
【发布时间】:2010-11-20 15:19:22
【问题描述】:

为什么 Mono 不能在 IIS 7 下运行?

更新:是什么阻止了为此目的开发 ISAPI?

【问题讨论】:

  • Erm - 你为什么要在 Windows 机器上运行 Mono(假设它是 Windows,因为你在谈论 IIS!)
  • @DilbertDave,如果他没有 linux 盒子,他需要测试一些适用于单声道但在 windows 上构建和测试的东西怎么办!
  • 嗯 - 公平点,但如果是这种情况,那么您肯定会通过 Apache(在 Windows 机器上)而不是 IIS 运行它,因为它不会在 Linux 操作系统上运行。
  • 我希望在 IIS 中运行 mono,因为我最终将所有 .net Web 应用程序移植到 Mono/Linux。我想如果让他们在他们现在所在的地方使用单声道(IIS),那么此举将是小菜一碟。但是,我现在了解到 IIS 不直接播放 Mono。在此之前,我假设在 windows 上安装 mono 框架会自动在 IIS 中注册正确的模块来服务 mono asp.net 应用程序。错误的假设。

标签: .net mono


【解决方案1】:

Mono 不能在 IIS 7 下运行,因为 Mono 没有 ISAPI 模块来实现与 IIS 7 交互的正确 API。

更新:关于您的问题是什么阻止您开发 ISAPI 模块来做到这一点?真的没什么。 Mono 有一个很好的嵌入 API,您可以轻松地从 C/C++ 中使用它。我的猜测是,没有人这样做的原因是因为没有太多需要这样做。

【讨论】:

  • 值得指出的是,虽然 Mono 确实有一个用于 Windows 的 XSP 服务器,但它可以通过 Mono 提供 ASP.NET 内容。用于测试/调试目的。
  • XSP Server for Windows 很有趣,听说过但忘记了。现在我想反过来。
【解决方案2】:

有可能使用 FastCGI 让 mono 与 IIS 一起工作: http://www.mono-project.com/FastCGI

您可以在 IIS 上安装 FastCGI: http://www.iis.net/download/fastcgi

用记事本打开这个文件来配置 FastCGI:

c:\WINDOWS\system32\inetsrv\inetsrv

比如我run php on iis通过fastCGI在这个文件的底部添加以下3行然后保存:

php=PHP
[PHP]
ExePath="C:\Program Files\PHP\php-cgi.exe"

所以我对单声道的疯狂猜测可能是:

aspx=ASP
[ASP]
ExePath="C:\Program Files\Mono-2.10.1\bin\mono.exe"

当然还有更多,我的猜测只是为了激发某人的想法......

【讨论】:

    【解决方案3】:

    您不需要在 IIS7 上运行 Mono。 Mono 是 .NET 平台的开发,主要用于 Linux(可能还有 FreeBSD 等;我上次研究它已经有一段时间了)。

    因此,如果您希望在 IIS7 上使用 .NET,只需在您的 Windows 服务器上安装本机 Microsoft .NET 堆栈(它可能已经安装)。

    您有什么特别的原因需要 Mono 而不是 Microsoft 的产品吗?

    【讨论】:

    • 如果我有一个现有的 windows 服务器和另一个 Linux 大规模部署,如果我可以在这两个平台上这样做会容易得多。
    • 我的意思是在一家拥有许多子公司的全球性公司中,每个子公司都可以拥有一个或另一个系统,如果 Mono 可以部署在这两种环境中,那将是真正的好处。
    【解决方案4】:

    首先,开发 ISAPI 很困难。看看 PHP ISAPI 曾经有多少问题,以及它是如何逐渐迁移到 FastCGI 的。不要在死胡同上浪费精力。

    其次,使用 FastCGI 驱动 XSP 可能是更简单的方法,但微软只为 PHP 提供 FastCGI。不确定如何将其重用于 XSP。

    使用 Mono 当然有它自己的价值,因为您可以访问 XSP 和 Mono 源代码来调试任何棘手的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2012-06-17
      • 2016-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多