2014-09-23 91 views
1

我有一个关于asp mvc的网站,突然它开始给我这个错误。 我不确定这个异常是什么意思。ASP MVC 3网站错误

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

。如果您正在使用一些不适用于中等信任环境的外部库,请尝试查找支持中等信任的版本。例如。Ninject国际奥委会图书馆过去在中等信托方面存在问题,他们对该方案有一个中等信托建立。 – 2014-09-23 09:09:42

+0

我在异常堆栈跟踪中看到了umbraco,因此您应该检查此页面:http://our.umbraco.org/wiki/install-and-setup/medium-trust-with-umbraco-45plus – 2014-09-23 09:13:27

回答

0

您的问题可能是由您正在运行应用程序的环境中的中信任设置引起的。确保在web.config中相应地调整设置。每对他们site做以下建议:

  1. 在System.Web程序,创建以下元素

  2. 下的appSettings,设置键 “umbracoUseMediumTrust” 为 “true”

  3. 在configSections下,将具有name =“clientDependency”的section元素修改为具有属性requirePermission =“false”

您还应该更新任何不适用于中型信托以支持中型信托的外部库。例如Ninject IOC库具有适用于中等信任环境的独立库版本。

另外使用一个版本一把umbraco使用的NuGet安装的时候有报道MethodAccessException的问题,所以你应该检查这个职位建议如何使用的NuGet正确安装一把umbraco:

http://our.umbraco.org/documentation/Installation/install-umbraco-with-nuget

0

根据MSDN

当存在一个无效的尝试访问的方法,例如访问来自部分信任的代码的私有方法所引发的异常。

此异常情况中引发如下所示:

  • 甲私有,保护,或内部的方法,不会在正常的编译代码可以访问从部分信任的代码通过使用反射访问。
  • 通过透明代码访问安全关键型方法。
  • 类库中方法的访问级别已更改,并且引用该库的一个或多个程序集尚未重新编译。

也许试试调整application's trust level

1

感谢您的帮助..实际上,在我使用不同版本的程序集的项目中存在另一个问题。如果你正在经历一个中等信任环境,比如Rackspace公司Cloudsites或GoDaddy这个问题尝试调整应用程序的信任级别添加以下代码在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>