XSP 可以运行 ASP.NET 4.5 吗?
Posted
技术标签:
【中文标题】XSP 可以运行 ASP.NET 4.5 吗?【英文标题】:Can XSP run 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对于***来说不是一个足够清晰的陈述,请描述为什么你认为它不起作用?它会引发错误吗?页面在浏览器中是否显示为空白?是什么让你认为它不起作用? @knocte 它运行ASP.NET Version: 4.0.30319.17020
,我需要ASP.NET Version: 4.5...
。没有错误。这个版本不是我所期望的。
你是如何提取版本信息的?
在我的 Mono 实例中,我必须将我的符号链接更新为正确版本的 Mono。这可能是您查看的起点。
@knocte 因为它在空文件夹上显示 404 异常,所以它在底部为我提供了有关单声道和 .net 版本的信息,就像在每个标准异常中一样。
【参考方案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
【讨论】:
以上是关于XSP 可以运行 ASP.NET 4.5 吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法打开程序集“/usr/lib/mono/4.5/xsp2.exe”:没有这样的文件或目录
使用 ssl 的 ASP.net 4.5 Websocket 加密