我正在尝试使用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 回答
好吧,我修好了 . 一个非常小的配置问题是问题 . 显然默认情况下,即使在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文件的相关部分:
最后一行是使它工作的关键 . 我最初只有:MonoServerPath / opt / mono / bin / mod-mono-serve4,但它明确地将应用程序的名称放在其间使得它运行server4而不是server2,因此.NET 4.0而不是2.0
现在,它大部分时间都有效 . 如果我重新启动Apache,第一次尝试浏览它失败 . 在那之后,没关系 . 很奇怪 .