2011-08-08 4 views
0

Mono와 ASP.NET MVC 3에서 며칠 동안 놀았습니다. 그것은 면도기를 거의 잘 실행합니다.
내가 ViewBag를 사용하고있는 라인을 주석 처리하거나 삭제하면 잘 동작합니다.
그러나 내가 ViewBag를 사용할 때 Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo에 예외를Mono에서 Razor 사용

잘못된 IL 코드를 제공합니다 만들기 (Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags, 문자열) : 메소드 본문이 비어 있습니다.

설명 : HTTP 500. 요청 처리 오류입니다.

스택 추적은 :

ViewBag.Message = "Welcome to ASP.NET MVC!"; 

내가 아마 어떤 어셈블리 참조 실종 :

System.InvalidProgramException: Invalid IL code in Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo:Create (Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags,string): method body is empty. 

NerdDinnerV3.Controllers.HomeController.Index() [0x0000a] in /home/telebovich/Projects/EmptyMvc2Application/EmptyMvc2Application/Controllers/HomeController.cs:13 at (wrapper dynamic-method) object.lambda_method  (System.Runtime.CompilerServices.Closure,System.Web.Mvc.ControllerBase,object[]) <IL 0x00006, 0x0002f> 
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc.ControllerBase,object[]) <IL 0x00008, 0x0001b> 
at System.Web.Mvc.ReflectedActionDescriptor.Execute (System.Web.Mvc.ControllerContext,System.Collections.Generic.IDictionary`2<string, object>) <IL 0x00072, 0x00103> 
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Collections.Generic.IDictionary`2<string, object>) <IL 0x00003, 0x00019> 
at System.Web.Mvc.ControllerActionInvoker/<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() <IL 0x0002d, 0x00068> 
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter,System.Web.Mvc.ActionExecutingContext,System.Func`1<System.Web.Mvc.ActionExecutedContext>) <IL 0x00031, 0x000b6> 

스택 추적이 아래에 13 행을 가리키는?
제발 도와 주실 수 있습니까?

미리 감사드립니다.

+0

이 답변을보십시오 : http://stackoverflow.com/questions/4239645/does-the-razor-view-engine-work-for-mono 또한 ViewData/ViewBag 대신보기 모델을 사용하는 것이 좋습니다. . –

답변

0

ViewBag는 동적으로 구현되며 .NET 4.0이 필요합니다. .NET 4.0에서 사이트를 실행하지 않을 수도 있습니까?

+0

OP는 'ViewBag' 라인을 주석 처리하면 ASP.NET MVC 3 면도기 애플리케이션이 정상적으로 작동한다고 명시했습니다. ASP.NET MVC 3 응용 프로그램은 .NET 4.0을 목표로하지 않으면 제대로 작동하지 않을 수 있습니다. –

+0

저는 모노 녀석이 아니지만 닷넷 4의 타겟/컴파일은 닷넷 4에서 사이트의 앱 풀이 실행되고 있다는 것을 의미하지 않습니다. 풀이 다른 버전으로 구성되면 사이트가 완전히 중단됩니까? Mono에 대해 이야기 할 때 IIS 용어를 사용하여 죄송합니다 ... – mgnoonan

+0

아니요 사이트가 컴파일되지 않습니다. ASP.NET MVC 3 어셈블리는 .NET 4.0에 의존합니다. –

0

내 게시물이 삭제 된 이유를 모르겠습니다. 나는 단지 ViewBag을 모노와 함께 사용한다고 말하고 싶었고 효과가있었습니다 - 이것은 'Razor가 Mono와 함께 작동합니까?'라는 질문을 이해할 수 있기 때문에 상당히 중요 할 수 있습니다. 또는 - 더 중요한 것은 - 'ViewBag과도 작동합니까?'. 모노와 xsp의 버전에 대해서도 물어 보았습니다. 왜냐하면 나는 갓 컴파일 된 자식 버전으로 업그레이드하여 해결 된 몇 가지 문제가 있었기 때문입니다. OP에게 : 그러한 정보를 제공해주세요, 아마도 저는 더 많은 것을 도울 수있을 것입니다.

+0

예, 내 사이트는 ASP.NET MVC 3 + 면도기에서 작동합니다. 그러나 그것은'ViewBag'과 함께 작동하지 않습니다. 내가 코멘트/삭제해야합니다. – telebovich

+0

사용중인 버전을 알려주시겠습니까? – Argie

+0

모노 런타임 버전 : 2.10.2 (tarball ??? ??? 1 16:03:03 EEST 2011); ASP.NET 버전 : 4.0.30319.1. 우분투 11.04. MonoDevelop 2.4 (.0?) – telebovich

0

ViewBag는 Linux에서 실행되는 Mono 2.10에서 Razor를 사용하여 훌륭하게 작동합니다. 당신이 그것을 사용하여 예를 들어 있는지 확인하십시오. .Net/Clr 4를 지원하는 xsp4 (대신 xsp2) 및 따라서 다이내믹.

+0

모노 2.10.6 문제가 해결되었습니다. – telebovich

+0

나는 2.10.1 (나)와 2.10.6을 사용하고있다. 좋은 당신을 위해뿐만 아니라 고정되어 있습니다. Btw : 어떤 웹 서버를 사용 했습니까? xsp4, appache? app4, njinx 등에서는 버전 -4 모듈 (webserver4)을 사용하는 것이 중요합니다.xsp를 사용하면 xsp4를 사용하여 .Net 4 항목을 동적으로 얻고 따라서 ViewBag를 지원하는지 확인해야합니다. – Marc