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

Asp.net .NET web应用程序未在Apache下的Mono上运行-无法识别的属性';targetFramework';,asp.net,apache,mono,Asp.net,Apache,Mono,我正在尝试在Linux上使用Apache上的Mono设置NuGet gallery。我遇到了一个典型的错误: 反序列化配置节编译时出错:无法识别的属性“targetFramework”。(/app/www/nugetsrus.sys.company.net/Web.config第1行)。 然而,我尝试过的每一种解决方法都不起作用。我没有运行xsp4 我使用的是CentOS 6.1和Mono 3.2.6 我在VS 2012中构建了一个空的.NET 4.0 web应用程序,并在其中添加了nuget.

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

反序列化配置节编译时出错:无法识别的属性“targetFramework”。(/app/www/nugetsrus.sys.company.net/Web.config第1行)。

然而,我尝试过的每一种解决方法都不起作用。我没有运行xsp4

我使用的是CentOS 6.1和Mono 3.2.6

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

我已经确保在Include conf.d/*.conf之前有用户apache和组apache 如果从Web.config中删除targetFramework 4.0行,则会出现内部服务器错误


不知道还能做些什么,也不知道如何让mono运行.NET4.0应用程序

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

我忽略了错误底部的文本,该文本表明mono正在运行ASP.NET2.0.50727.1433。由于我的web应用程序是在.NET4.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 

DocumentRoot/app/www/nugetsrus.sys.company.net
MonoDebug nugetsrus.sys.company.net true
MonoSetEnv nugetsrus.sys.company.net MONO\u 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,第一次尝试浏览失败。在那之后,就没事了。很奇怪