将 ASP.NET 应用程序与 Mono 一起使用时出错

问题描述 投票:0回答:1

所以,我几天前问过,如何在 Apache Web 服务器上部署 ASP.NET 应用程序,就我而言,使用 Mono 是更好的解决方案。 (我可以在 Linux 上部署 .ashx 文件吗?

这是我的应用程序:
/wschb.ashx

<%@ WebHandler Language="C#" CodeBehind="wschb.ashx.cs" Class="MyAPP.wschb" %>

/bin/MyAPP.dll
我不知道这个文件里有什么

我想用它做的很简单:我将带有 XML 文件的 POST 请求发送到 wschb.ashx 文件,然后我得到另一个 XML 文件。

我安装了单声道、XSP4 和 mod_mono。
我为我的应用程序创建了一个虚拟主机。
我在我的 apache2.conf 中添加了这个:

Include /etc/apache2/mods-available/mod_mono.conf

LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so

现在我想调用我的 wschb.ashx 文件,我得到这个错误: System.OverflowException

我的应用程序与 Mono 不兼容,还是我配置有误?

asp.net linux apache mono ashx
1个回答
0
投票

如果你想在 Linux 上运行一个 asp.net 站点,那么使用 .net core,并使用 MVC 作为网站。

试图在 Linux 上运行 asp.net 框架 4.x?哎呀,我无法想象你曾经让它工作得很好,因为这样的网站需要 IIS 服务。 IIS 有一组电话簿大小的配置和功能,例如需要为工作 IIS 站点设置的应用程序池。

除非你在这里运行 IIS,并且可以配置 IIS 的所有设置?你真是白费力气,在这里浪费时间和精力。您需要完整的 IIS 服务和设置 IIS 的能力。你不会得到一个与 apache 一起工作的 asp.net framwork 站点——你就是不会。

Mono = 能够运行编译后的 .net 代码。

Mono DOES NOT = abilty to run IIS web server,它有一个 BOATLOAD of windows dendances,并且如前所述,有一个 BOATLOAD of setup.

您可以在 Linux 上运行 .net 4.x 框架代码这一事实与运行需要 IIS 才能运行的 asp.net 站点的代码相去甚远。

不同的系统当然需要不同的网络服务器。

你不能使用 Apache 网站,并通过某种魔术使该网站与 IIS Web 服务器一起运行。反之亦然。

Mono 会让你编译 .net 代码运行,但是 asp.net 网站?那是一个不同问题的珠穆朗玛峰,你需要 IIS web 服务器来运行诸如 asp.net 站点。

正如我所说,如果您使用 .net 核心构建 asp.net 网站,使用 MVC(而不是 Web 表单),那么您将拥有一个真正的平台中立设置,并且该设置甚至可以使用 + 使用 Apache 运行。

你的设置不受支持,除非你有一个完整的流行版 IIS 在该服务器上顺利运行,否则这将不起作用。您不能将 Apache 用于 .net 框架站点。如果您使用 .net 核心(而不是旧的 .net 框架)构建站点,并且如前所述,您创建了一个 MVC 站点,那么您肯定可以轻松地运行 + 部署。所以,如果使用 .net 标准(.net 核心的新名称),那么没问题。

然而,.net框架?不,如果有的话,真的不会很好地工作。

© www.soinside.com 2019 - 2024. All rights reserved.