2014-08-30 127 views
0

我创建了一个ASP.net MVC 5应用程序,不幸的是我的主机使用中等信任。当我改变应用程序使用“〜/”在URL路径中使用“/”时,其他所有工作都能正常工作。现在我的问题是,应用程序在功能System.Web.Mvc.UrlHelper.GenerateUrl抛出异常()当我创建一个表格下面的代码:System.Web.Mvc.UrlHelper.GenerateUrl错误安全异常

@using (Html.BeginForm("Index", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 

的错误信息是:

应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或更改配置文件中的应用程序信任级别。

以下是完整的堆栈跟踪:

[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral,    PublicKeyToken=b77a5c561934e089' failed.] 
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31 
System.Security.CodeAccessPermission.Demand() +46 
System.Web.HttpContext.System.IServiceProvider.GetService(Type service) +54 
System.Web.HttpContextWrapper.GetService(Type serviceType) +11 
System.Web.WebPages.UrlRewriterHelper.IsUrlRewriterTurnedOn(HttpContextBase httpContext) +108 
System.Web.WebPages.UrlRewriterHelper.WasRequestRewritten(HttpContextBase httpContext) +13 
System.Web.WebPages.UrlUtil.GenerateClientUrlInternal(HttpContextBase httpContext, String contentPath) +138 
System.Web.WebPages.UrlUtil.GenerateClientUrl(HttpContextBase httpContext, String contentPath) +97 
System.Web.Mvc.UrlHelper.GenerateUrl(String routeName, String actionName, String controllerName, RouteValueDictionary routeValues, RouteCollection routeCollection,  RequestContext requestContext, Boolean includeImplicitMvcValues) +139 
System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, FormMethod method,  IDictionary`2 htmlAttributes) +41 
System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName, Object routeValues, FormMethod method, Object    htmlAttributes) +58 
ASP._Page_Views_Shared__EnquiryPartial_cshtml.Execute() in d:\inetpub\vhosts\mydomain.com\httpdocs\Views\Shared\_EnquiryPartial.cshtml:16 
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198 
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104 
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +90 
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +235 
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107 
System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection     viewEngineCollection) +277 
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +91 
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName) +32 
ASP._Page_Views_Home_Parallax_cshtml.Execute() in d:\inetpub\vhosts\dmydomain.com\httpdocs\Views\Home\Parallax.cshtml:670 
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198 
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104 
System.Web.WebPages.StartPage.RunPage() +17 
System.Web.WebPages.StartPage.ExecutePageHierarchy() +64 
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +78 
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +235 
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107 
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext   controllerContext, ActionResult actionResult) +56 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext   controllerContext, ActionResult actionResult) +420 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +52 
System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +173 
System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +100 
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +41 
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +28 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +31 
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31 
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9514928 
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

任何帮助将不胜感激。

+0

请显示网址? – 2014-08-30 15:48:12

+0

@ShujaatSiddiqui,谢谢。如果有帮助,我已经添加了完整的堆栈跟踪。 – Simua 2014-08-30 18:01:12

回答

1

中等信任支持已从MVC,WebAPI,SignalR等中删除,现在需要完全信任。

微软已经向托管服务提供了指导,他们应该从中信任迁移并使用适当的操作系统级别的隔离,而现在认为中信托已经过时。 http://support.microsoft.com/kb/2698981