首页 文章

在Apache下未在Mono上运行的.NET Web应用程序 - 无法识别的属性'targetFramework'

提问于
浏览
0

我正在尝试使用Apache上的Mono在Linux上设置NuGet库 . 我遇到了一个典型的错误:

Error deserializing configuration section compilation: Unrecognized attribute 'targetFramework'. (/app/www/nugetsrus.sys.company.net/Web.config line 1).

但是,我尝试过的每一种解决方法都不起作用 . 我没有运行xsp4

我使用的是Mono 3.2.6的CentOS 6.1

我在VS 2012中构建了一个空的.NET 4.0 Web应用程序,并将nuget.server添加到其中 . 构建和发布,它在IIS中工作 . 我将文件夹复制到我的CentOS盒子并尽可能地配置了Apache和Mono .

我确保在Include conf.d / *之前我有User apache和group apache .conf如果我从Web.config中删除了targetFramework 4.0行,我得到一个内部服务器错误

不知道还有什么可做的,或者在这里看看单机运行.NET 4.0应用程序 .

1 回答

  • 0

    好吧,我修好了 . 一个非常小的配置问题是问题 . 显然默认情况下,即使在mod_mono.conf文件中指定了mod-mono-server4,mod-mono-server2也会运行 . 您必须在Apache配置文件中为您尝试运行的网站指定mod-mono-server4 .

    我忽略了错误底部的文本,表明mono正在运行ASP.NET 2.0.50727.1433 . 由于我的Web应用程序是在.NET 4.0中构建的,显然您会遇到框架错误,因为2.0不知道该属性 . 那是因为mod-mono-server2正在运行 . 我不得不强制运行mod-mono-server4 .

    以下是我的Nuget.conf文件的相关部分:

    <VirtualHost *:80>
    DocumentRoot /app/www/nugetsrus.sys.company.net
    MonoDebug nugetsrus.sys.company.net true
    MonoSetEnv nugetsrus.sys.company.net MONO_IOMAP=all
    MonoApplications nugetsrus.sys.company.net "/:/app/www/nugetsrus.sys.company.net"
    MonoServerPath nugetsrus.sys.company.net /opt/mono/bin/mod-mono-server4
    

    最后一行是使它工作的关键 . 我最初只有:MonoServerPath / opt / mono / bin / mod-mono-serve4,但它明确地将应用程序的名称放在其间使得它运行server4而不是server2,因此.NET 4.0而不是2.0

    现在,它大部分时间都有效 . 如果我重新启动Apache,第一次尝试浏览它失败 . 在那之后,没关系 . 很奇怪 .

相关问题