Spacebuilder在Mono上运行修改备忘

时间:2022-04-25
本文章向大家介绍Spacebuilder在Mono上运行修改备忘,主要内容包括System.InvalidProgramException、System.ArgumentNullException、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

Spacebuilder 是一个asp.net mvc3项目,使用到了Combres,Combres依赖于dotless,然后在Spacebuilder的项目没有见到的dotless,运行要求dotless 1.3.0.2版本,通过Nuget获取:

Install-Package dotless -Version 1.3.0.2

修改web.config加入dotless配置:

<configuration> 
  <configSections>     
    <section name="combres" requirePermission="false" type="Combres.ConfigSectionSetting, Combres, Version=2.2.2.6" />     
    <section name="dotless" type="dotless.Core.configuration.DotlessConfigurationSectionHandler, dotless.Core" />     
  </configSections>
……
  <dotless minifyCss="false" cache="true" web="false" />
</configuration>

另外将Microsoft.Web.Infrastructure.dll 剔除,让程序使用Mono自带的动态库,具体参看 Linux.NET学习手记(5)或者 Get MVC3 Razor Running on Mono

访问 http://mono.cloudapp.net/ ,接着又发生了数据库连接错误:System.NotImplementedException (SSL encryption for data sent between client and server is not implemented.)在stackoverflow上看到了类似问题:http://stackoverflow.com/questions/14075667/cant-connect-to-sql-azure-database-using-monotouch,看来通过Windows  Azure来做测试没戏,还得老实搭建本地环境来测试。

在Windows Azure独立建立一个虚拟机安装SQL Server 2008 R2,手工安装spb。

System.InvalidProgramException

Invalid IL code in System.Web.Handlers.ScriptModule:.ctor (): method body is empty.

Description: HTTP 500.Error processing request.

Details: Non-web exception. Exception origin (name of application or object): mscorlib.

Exception stack trace:

at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

需要使用mono版本的System.Web.Extensions.dll,System.Web.WebPages.Administration.dll

在Mono 下以上程序集就可以跑ASP.NET mvc 3.

web.config 添加上了 <globalization culture="zh-CN" uiCulture="en-US"/> 但还是报错

System.ArgumentNullException

Argument cannot be null. Parameter name: key

Description: HTTP 500.Error processing request.

Details: Non-web exception. Exception origin (name of application or object): mscorlib.

Exception stack trace:

at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown>:0 at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown>:0 at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) [0x00000] in <filename unknown>:0 at System.Resources.ResourceManager.GetString (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Web.Razor.Resources.RazorResources.get_BlockName_Code () [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.CSharpCodeParser.ParseBlock () [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.ParserBase.ParseBlockWithOtherParser (System.Web.Razor.Parser.SyntaxTree.SpanFactory previousSpanFactory, Boolean collectTransitionToken) [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.HtmlMarkupParser.TryStartCodeParser (Boolean isSingleLineMarkup, Boolean documentLevel) [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.HtmlMarkupParser.ParseRootBlock (System.Tuple`2 nestingSequences, Boolean caseSensitive) [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.HtmlMarkupParser.ParseDocument () [0x00000] in <filename unknown>:0 at System.Web.Razor.Parser.RazorParser.Parse (System.Web.Razor.Text.LookaheadTextReader input, System.Web.Razor.Parser.ParserVisitor visitor) [0x00000] in <filename unknown>:0 at System.Web.Razor.RazorTemplateEngine.GenerateCodeCore (System.Web.Razor.Text.LookaheadTextReader input, System.String className, System.String rootNamespace, System.String sourceFileName, Nullable`1 cancelToken) [0x00000] in <filename unknown>:0 at System.Web.Razor.RazorTemplateEngine.GenerateCode (System.IO.TextReader input, System.String className, System.String rootNamespace, System.String sourceFileName, Nullable`1 cancelToken) [0x00000] in <filename unknown>:0 at System.Web.Razor.RazorTemplateEngine.GenerateCode (System.IO.TextReader input, System.String className, System.String rootNamespace, System.String sourceFileName) [0x00000] in <filename unknown>:0 at System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode () [0x00000] in <filename unknown>:0 at System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType () [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManagerDirectoryBuilder.GetBuildProviderCodeDomType (System.Web.Compilation.BuildProvider bp) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManagerDirectoryBuilder.AssignToGroup (System.Web.Compilation.BuildProvider buildProvider, System.Collections.Generic.List`1 groups) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManagerDirectoryBuilder.Build (Boolean single) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.BuildInner (System.Web.VirtualPath vp, Boolean debug) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.Build (System.Web.VirtualPath vp) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.GetCompiledType (System.Web.VirtualPath virtualPath) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.GetCompiledType (System.String virtualPath) [0x00000] in <filename unknown>:0 at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetCompiledType (System.String virtualPath) [0x00000] in <filename unknown>:0 at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer) [0x00000] in <filename unknown>:0 at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00000] in <filename unknown>:0 at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <filename unknown>:0 at System.Web.Mvc.ControllerActionInvoker+<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19 () [0x00000] in <filename unknown>:0 at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter filter, System.Web.Mvc.ResultExecutingContext preContext, System.Func`1

Running Mono 3.2.0 with .NET MVC 4