asp.net - 在 Linux 上使用 xsp 运行 ASP.NET 应用程序时缺少方法错误

标签 asp.net linux mono xsp

我有带 MVC 和 Razor 标记网站的 ASP.NET,我想在我的 Linux VPS 上运行它。

我有 mono 3.2.8 和 xsp4 3.0.0.0 版本,都来自 Ubuntu 存储库(使用 apt-get install mono-complete mono-xsp4 安装)

当我将我的网站上传到服务器并在网站文件夹中运行 xsp4 时,它会启动并打印出它正在监听端口 8080。但是当我使用我的网络浏览器导航到我的网站时,它会显示运行时错误和 xsp4 输出这是为了安慰

Missing method System.Web.HttpApplication::RegisterModule(Type) in assembly
/usr/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll, referenced 
in assembly /tmp/root-temp-aspnet-0/55726984/
assembly/shadow/df4b0596/52105b83_8d5b5e15_00000001/Microsoft.Owin.Host.SystemWeb.dll

Missing method RegisterAllAreas in assembly /tmp/root-temp-aspnet-
0/55726984/assembly/shadow/dc5a60b8/51013ead_8d5b5e15_00000001/<website_name>.dll, type
System.Web.Mvc.AreaRegistration

这是全新的 Ubuntu 14.04 安装。我正在使用 Visual Studio 2013 在 Windows 上开发我的网站。知道如何修复这些错误吗?

最佳答案

有关此问题的上游错误报告位于 here .

在错误修复和实现方法之前,建议的解决方法是使用 Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule 而不是 HttpApplication.RegisterModule

The issue here描述了一种解决方法,即在 PreApplicationStart.cs 中将 HttpApplication.RegisterModule 更改为 Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule在 OWIN 中(以前的主人已经有 NET 4.0 的相关 IFDEF,但由于某种原因它被恢复了)或包含他们指定的 DLL 或在 web.config 中手动注册模块。

不需要对 OWIN 进行任何代码更改的替代方法是在 Mono 中实现缺少的方法并修复错误,然后将修复程序反向移植到您的 Mono 版本。

关于asp.net - 在 Linux 上使用 xsp 运行 ASP.NET 应用程序时缺少方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27212512/

相关文章:

.net - 后台持续运行的线程会影响网站的性能吗?

asp.net - 如何获取部署在 Azure 网站上的 ASP.NET 5 应用程序的错误详细信息?

linux - 如何在 expect shell 脚本中获取生成进程的退出代码?

c# - Mono C# WinForms -> 在 Mac OSX 上运行时出现严重的性能问题

linux - Not Acceptable TLS 证书 - 尝试安装 MonoDevelop Flat Pak 时

javascript - 使用 jquery 从 asp 列表框中获取所选项目的数量

asp.net - asp.net 网络表单中的 Url.Content

c - 在阻塞连接后设置套接字非阻塞

linux - 如何用风格线为每个点增加值(value)?

.net - 我如何使用单声道 objective-c #/.net 4 进行编译