Mig*_*ues 4 apache mono mod-mono servicestack
我在Apache中使用mod-mono托管ServiceStack Web服务,我有mono-3.0.0和xsp-2.10.2.我主持了针对.Net framework 2.0并使用mod-mono-server2的hello world示例,它运行良好.然后我将项目更改为目标.Net framework 4.0并使用mod-mono-server4.我收到此错误:
无法加载文件或程序集'System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
System.IO.FileNotFoundException:无法加载文件或程序集'System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.文件名:'System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 在System.AppDomain.Load(System.String assemblyString,System.Security.Policy.Evidence assemblySecurity,Boolean refonly)[0x00000] in:0 at System.AppDomain.Load(System.String assemblyString)[0x00000] in:0 at(at wrapper remoting-invoke-with-check)System.AppDomain:System.Reflection.Assembly.Load(System.String assemblyString)[0x00000]中的Load(string)in:0 at System.Web.Compilation.BuildManager.LoadAssembly(System. Web.Configuration.AssemblyInfo info,System.Collections.Generic.List`1 al)[0x00000] in:0,System.Web.Compilation.BuildManager.GetReferencedAssemblies()[0x00000] in:0,System.Web.Compilation.BuildManager .CallPreStartMethods()[0x00000] in:0
但是文件System.Web.Extensions安装在GAC中:
gacutil -l System.Web.Extensions
以下程序集安装在GAC中:System.Web.Extensions,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 System.Web.Extensions,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 System.Web .Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 items of items = 3
即使我将MonoPath设置为专门获取4.0版本,也会发生相同的错误:
MonoPath /usr/local/lib/mono/4.0
我也注意到了这一点:
版本信息:Mono Runtime版本:2.10.5(tarball Fri Oct 28 10:20:24 IST 2011); ASP.NET版本:4.0.30319.1
Mono Runtime版本说2.10.5虽然我安装了mono-3.0.0,但我不知道这个信息是否对这个问题有价值.
我尝试直接运行mod-mono-server4,我收到此错误消息:
MOD-单服务器4
mod-mono-server4缺少方法System.Configuration.IConfigurationSectionHandler ::在程序集/usr/local/lib/mono/4.0/System.dll中创建(对象,对象,XmlNode),在程序集/ usr/local/lib/mono中引用/4.0/System.Configuration.dll在读取配置文件期间捕获到异常:System.MissingMethodException:找不到方法:'System.Configuration.IConfigurationSectionHandler.Create'.在System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(System.String configKey)[0x00000] in:0 in System.Configuration.ConfigurationManager.GetSection(System.String sectionName)[0x00000] in:0 at System .Configuration.ConfigurationManager.get_AppSettings()[0x00000] in:0,Mono.WebServer.Apache.Server.get_AppSettings()[0x00000] in:0,Mono.WebServer.Apache.
我搜索了这个错误,它引导我到这个错误:
也许mod-mono-server4上的错误是另一个bug的起源......我将尝试获取xsp 3.0并查看它是否解决了问题.
有任何想法吗?
谢谢
小智 5
导致此错误的原因是,当Mod_Mono/XSP使用Mono的.NET 4.0框架实现时,System.Configuration程序集中存在问题.它试图在"阅读MonoServerDefaultIndexFiles " appSetting关键,但无法找到创建工厂方法.
花了一两天的时间才弄清楚解决方案是编辑以下文件......
/选择/单声道/斌/ MOD-单服务器4
...通过在此行中将默认值4.0更改为4.5:
exec/opt/mono/bin/mono $ MONO_OPTIONS"/ opt/mono/lib/mono/4.5 /mod-mono-server4.exe""$ @"
解决了这个问题后,我面临的下一个问题是Mono通过其Settings Map功能用SqliteMembershipProvider替换了内置的AspNetMembershipProvider.我在Web.config的appSettings部分添加了以下行来禁用此默认行为:
"<add key ="MonoAspnetInhibitSettingsMap"value ="disabled"/>"
经过几天的追逐,我的MVC3应用程序在Mono 3.0.3上成功运行(在撰写本文时最新)/ XSP 2.10/Mod_Mono 2.10
归档时间: |
|
查看次数: |
7986 次 |
最近记录: |