【问题标题】:Running ASP.net under Mono LinuxRunning ASP.net under Mono Linux
【发布时间】:2012-02-26 21:51:41
【问题描述】:

我目前正在研究将我的 Web 服务器从 windows 更改为 linux。我目前有一个在我的网站上运行的 asp.net 程序,我想尝试让它在单声道下的 Linux 上运行。

我已将所有文件从我的 Windows 服务器复制到我的测试 linux 服务器,但是当我尝试访问该页面时,我收到以下错误:

无法识别的属性“requestValidationMode” (/srv/www/htdocs/mywebsitedirectory/web.config

以下是 web.config 文件的副本

<?xml version="1.0" encoding="UTF-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>

    <connectionStrings>
  <add name="DownloadManagerDB" connectionString="Server=localhost;Port=3306;Database=downloads;Uid=public;Pwd=54mCuw90;pooling=false;" providerName="MySql.Data.MySqlClient" />
 </connectionStrings>
    <system.web>
    <customErrors mode="Off" />
    <httpRuntime requestValidationMode="2.0" maxRequestLength="16384" />
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
                <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /></assemblies></compilation>
        <authentication mode="Forms">
            <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
        </authentication>
        <membership>
            <providers>
                <clear />
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
            </providers>
        </membership>
        <profile>
            <providers>
                <clear />
                <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
            </providers>
        </profile>
        <roleManager enabled="false">
            <providers>
                <clear />
                <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
                <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
            </providers>
        </roleManager>
    </system.web>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
        <defaultDocument>
            <files>
                <clear />
                <add value="index.aspx" />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="default.aspx" />
                <add value="index.html" />
                <add value="iisstart.htm" />
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

它看起来好像在错误页面上,当 Mono 实际设置为 .net 4 时,它认为它的 asp.net 版本 2。我使用的是 Mono 版本 2.10.6,它说它支持 .net 4。

感谢您提供的任何帮助。

更新: 运行ps auxwww | grep mono的输出

wwwrun 12029 0.0 0.8 48800 8100 ? 19:55 0:00 /usr/bin/mono /usr/lib/mono/2.0/mod-mono-server2.exe --filename /tmp/mod_mono_server_global --nonstop --master root 12177 0.0 0.0 2524 768 pts/1 S+ 20:04 0:00 grep --color=auto mono

【问题讨论】:

  • 您是不是不小心安装了 mod-mono-server2(但不是 mod-mono-server4)?
  • 嗨。谢谢你的帮助。当我查看 yast 时,我只看到 apache2-mod_mono。我已经按照 Mono 提供的说明对 OpenSuse 进行了升级。但它似乎仍然无法正常工作。
  • 运行ps auxwww | grep mono 并发布!
  • 我已经用命令的输出更新了问题内容
  • 我不(更好:不再)熟悉 SUSE 中的程序,但您运行的是 mod-mono-server2.exe 而不是 mod-mono-server4.exe,本质上是 ASP.NET 2.0 而不是 ASP.NET 4.0 - 我yast 帮不了你,我的 SUSE 时代已经过去好几年了,但你现在可以改写你的问题,也许可以在 SUSE 论坛上发布:“我如何启用 mod-mono-server4.exe 而不是 mod-mono-server2 .exe 用于我的 SUSE 安装?”

标签: c# asp.net mono


【解决方案1】:

就像@Eugen Rieck 指出的那样,您需要配置 mod-mono-server4 而不是 server2。

在这篇文章之后,

http://docs.orchardproject.net/Documentation/Running-Orchard-on-Mono?Code=1

你应该去你的 Apache 设置,将 MonoServerPath 更改为 /usr/bin/mod-mono-server4 (或你盒子上的有效路径)然后你可以再次测试看看这个属性是否可以正确处理。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多