【问题标题】:Can XSP run ASP.NET 4.5?XSP 可以运行 ASP.NET 4.5 吗?
【发布时间】:2013-12-17 05:28:22
【问题描述】:

我几天来一直在尝试在 Mono 下启动 MVC5(取决于 .NET 4.5),但没有成功。

配置

  • 干净安装最新的 Lubuntu
  • 没有以前的 XSP/Mono
  • 从最新的 git 源编译和安装 XSP/Mono
  • 单声道版:3.2.7

问题

当我在任何文件夹上运行xsp4 时,它会显示Version Information: 3.2.7 (master/1eef047 C nov 28 18:16:30 EET 2013); ASP.NET Version: 4.0.30319.17020


最新的 Mono 版本支持 .NET 4.5,XSP 支持吗?
如果是这样,我如何确保它使用的是 4.5 而不是 4.0?

即使我直接从 Mono 4.5 文件夹 (/usr/lib/mono/4.5/xsp4.exe) 运行 XSP,它也显示 ASP.NET 版本是 4.0。

另外,/usr/bin/xsp4 中的 XSP 配置行看起来像这样。我很困惑。

#!/bin/sh
exec /usr/bin/mono $MONO_OPTIONS "/usr/lib/mono/4.5/xsp4.exe" "$@"

【问题讨论】:

  • it doesn't work对于stackoverflow来说不是一个足够清晰的陈述,请描述为什么你认为它不起作用?它会引发错误吗?页面在浏览器中是否显示为空白?是什么让你认为它不起作用?
  • @knocte 它运行ASP.NET Version: 4.0.30319.17020,我需要ASP.NET Version: 4.5...。没有错误。这个版本不是我所期望的。
  • 你是如何提取版本信息的?
  • 在我的 Mono 实例中,我必须将我的符号链接更新为正确版本的 Mono。这可能是您查看的起点。
  • @knocte 因为它在空文件夹上显示 404 异常,所以它在底部为我提供了有关单声道和 .net 版本的信息,就像在每个标准异常中一样。

标签: c# asp.net mono xsp


【解决方案1】:

您可以使用 --runtime 标志指示 mono 启动特定的运行时版本。在这种情况下,它会是这样的:

#!/bin/sh
exec /usr/bin/mono $MONO_OPTIONS --runtime=v4.5 "/usr/lib/mono/4.5/xsp4.exe" "$@"

但是,据我了解,.NET 的 4.5 配置文件不包括运行时中的更改,而是类库和编译器中的更改。因此,如果上述方法不起作用,则仅表示运行 4.5 应用程序所需的运行时版本就是 4.0.30319 版本。

理解这一点的最佳方法是包含这个从Scott Hanselman's blog post 抓取的小图像:

【讨论】:

  • WARNING: The runtime version supported by this application is unavailable.。无论如何,我认为您可能是对的,它可以运行 .NET 4.5 网站。我不知道如何测试它。
  • 是的,我只是用不同的堆栈(不是 MVC5)对其进行了测试,它确实可以正常工作。我还通过检查System.Reflection.ReflectionContext 是否存在来确保它在下面运行.NET 4.5。确实如此。非常感谢!
【解决方案2】:

您可以运行 MVC 的唯一机会是安装单声道 3.4.0。 单声道 3.2.7 不适用于 MVC5

【讨论】:

  • 你是对的。但是来自 git 的 newset mono 仍然不支持 MVC5。 (属性路由,小写 url,其他东西..)
【解决方案3】:

我已经在mono 3.4.0 中遵循了这一点,并在MonoDevelop 下成功设置了一个非常简单的MVC5,

http://curtis.schlak.com/2014/02/04/setup-asp-net-mvc-4-on-monodevelop-4.2.html

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    相关资源
    最近更新 更多