我有一个关于asp mvc的网站,突然间它开始给我这个错误了。 我不确定这个例外是什么意思。
Attempt by method 'ASP._Page_Views_Home_Index_cshtml.Execute()' to access method'System.Web.WebPages.WebPageExecutingBase.BeginContext(System.String, Int32, Int32, Boolean)' failed.
Stack trace:
[MethodAccessException: Attempt by method 'ASP._Page_Views_Home_Index_cshtml.Execute()' to access method 'System.Web.WebPages.WebPageExecutingBase.BeginContext(System.String, Int32, Int32, Boolean)' failed.]
ASP._Page_Views_Home_Index_cshtml.Execute() in c:\Umbraco upgrade\ASIC MoneySmart v6.2.1 Stable (Final)\MoneySmart.Admin\Views\Home\Index.cshtml:2
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104
System.Web.WebPages.StartPage.ExecutePageHierarchy() +143
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +157
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +378
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +33
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +727696
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +727652
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +334
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +15
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +52
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
答案 0 :(得分:1)
感谢您的帮助..实际上我的项目中还有另一个问题我使用的是不同版本的程序集。在web.config中添加以下代码解决了我的问题
<assemblyIdentity name="System.Web.Helpers"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
答案 1 :(得分:0)
根据MSDN,
尝试访问方法无效时引发的异常,例如从部分受信任的代码访问私有方法。
在以下情况下抛出此异常:
- 使用反射从部分受信任的代码访问无法从正常编译代码访问的私有,受保护或内部方法。
- 从透明代码访问安全关键方法。
- 类库中方法的访问级别已更改,并且尚未重新编译引用该库的一个或多个程序集。
也许可以尝试调整application's trust level。
答案 2 :(得分:0)
您的问题可能是由您运行应用的环境中的中等信任设置引起的。确保在web.config中相应地调整设置。根据{{3}}的建议,执行以下操作:
在system.web下,创建以下元素<trust level="Medium" originUrl=".*" />
在appSettings下,设置键&#34; umbracoUseMediumTrust&#34; to&#34; true&#34;
在configSections下,修改name =&#34; clientDependency&#34;的section元素。有一个属性requirePermission =&#34; false&#34;
您还应该更新任何不在Medium-Trust中工作的外部库,以支持中等信任。例如,Ninject IOC库为Medium-Trust环境提供了单独的库版本。
此外,在使用Nuget安装的Umbraco版本时,已经报告了 MethodAccessException 的问题,因此您应该查看此帖子,了解如何使用Nuget正确安装Umbraco: