Exceção ímpar no projeto MVC 3
-
26-09-2019 - |
Pergunta
Estou recebendo um erro estranho com um projeto MVC 3.0 RC.
Parece que está chateado com o meu aplicativo não ser um AppDomain homogêneoEstava funcionando bem ontem, não tenho certeza do que mudou.
System.InvalidOperationException was unhandled by user code
Message=Dynamic operations can only be performed in homogenous AppDomain.
Source=System.Core
StackTrace:
at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at ASP.Index_cshtml.Execute() in c:\Projects\RealJobs.Branch\RealJobs.MVC\Views\Jobs\Index.cshtml:line 5
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.StartPage.RunPage()
at System.Web.WebPages.StartPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
A exceção foi lançada quando a visualização.Title é modificada no index.cshtml
@{
View.Title = "Jobs | realjobs.com.au";
}
Alguma ideia? O Google não produziu alegria.
ATUALIZAR
Parece que realmente não gostava que eu mudasse a confiança na web.config
Eu adicionaria a seguinte linha para contornar outro problema:
<trust legacyCasModel="true" level="Full"/>
Uma vez removido, ele está funcionando novamente. Isso é por design?
Solução
Sim, acredito que isso é esperado.
Existem algumas limitações no uso de despacho dinâmico como este. O novo dynamic
O recurso no .NET 4 não foi feito para ser usado para coisas como essa, mas com certeza é bom quando funciona muito bem em muitos casos. A principal intenção de dynamic
foi para melhor com interop.
Por exemplo, alguns outros cenários que não funcionam estão usando o Dynamic Despacho em VB em um aplicativo de confiança média.