Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 url重写和mvc导致异常_Asp.net Mvc 3_Iis 7_Url Rewriting_Asp.net Mvc Routing_Mvcsitemapprovider - Fatal编程技术网

Asp.net mvc 3 url重写和mvc导致异常

Asp.net mvc 3 url重写和mvc导致异常,asp.net-mvc-3,iis-7,url-rewriting,asp.net-mvc-routing,mvcsitemapprovider,Asp.net Mvc 3,Iis 7,Url Rewriting,Asp.net Mvc Routing,Mvcsitemapprovider,我正在使用IIS URL重写将“/about”重写为“/home/about” 如果我使用任何生成相对url的帮助程序,如“@url.Content”或“@using(Html.BeginForm(Action,Controller)”,它会给我一个异常: System.Web.HttpException: Cannot use a leading .. to exit above the top directory. 复制异常非常容易,我很沮丧,我还没有找到解决方案。有什么想法吗?提前谢谢

我正在使用IIS URL重写将“/about”重写为“/home/about”

如果我使用任何生成相对url的帮助程序,如“@url.Content”或“@using(Html.BeginForm(Action,Controller)”,它会给我一个异常:

System.Web.HttpException: Cannot use a leading .. to exit above the top directory.
复制异常非常容易,我很沮丧,我还没有找到解决方案。有什么想法吗?提前谢谢

堆栈跟踪:

[HttpException (0x80004005): Cannot use a leading .. to exit above the top directory.]
System.Web.Util.UrlPath.ReduceVirtualPath(String path) +11495983
System.Web.Util.UrlPath.Reduce(String path) +171
System.Web.VirtualPath.Combine(VirtualPath relativePath) +214
System.Web.VirtualPathUtility.Combine(String basePath, String relativePath) +158
System.Web.Mvc.PathHelpers.GenerateClientUrlInternal(HttpContextBase httpContext, String contentPath) +385
System.Web.Mvc.UrlHelper.GenerateUrl(String routeName, String actionName, String    controllerName, RouteValueDictionary routeValues, RouteCollection routeCollection,      RequestContext requestContext, Boolean includeImplicitMvcValues) +257
MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver.ResolveUrl(MvcSiteMapNode mvcSiteMapNode, String area, String controller, String action, IDictionary2 routeValues) +1034
MvcSiteMapProvider.MvcSiteMapNode.get_Url() +323
MvcSiteMapProvider.AuthorizeAttributeAclModule.IsAccessibleToUser(IControllerTypeResolver controllerTypeResolver, DefaultSiteMapProvider provider, HttpContext context, SiteMapNode node) +135
MvcSiteMapProvider.DefaultAclModule.IsAccessibleToUser(IControllerTypeResolver controllerTypeResolver, DefaultSiteMapProvider provider, HttpContext context, SiteMapNode node) +216
MvcSiteMapProvider.DefaultSiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node) +349
MvcSiteMapProvider.Web.Html.MenuHelper.BuildModel(MvcSiteMapHtmlHelper helper, SiteMapNode startingNode, Boolean startingNodeInChildLevel, Boolean showStartingNode, Int32 maxDepth, Boolean drillDownToCurrent) +361
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper helper, String templateName, SiteMapNode startingNode, Boolean startingNodeInChildLevel, Boolean showStartingNode, Int32 maxDepth, Boolean drillDownToCurrent) +87
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper helper, SiteMapNode startingNode, Boolean startingNodeInChildLevel, Boolean showStartingNode, Int32 maxDepth, Boolean drillDownToContent) +40
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper helper, Boolean startFromCurrentNode, Boolean startingNodeInChildLevel, Boolean showStartingNode) +86
ASP._Page_Views_Shared__SfMaster_cshtml.Execute() in c:\webmaster\projects\jclcorp\jclcorpmvc\Views\Shared\_SfMaster.cshtml:22
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +173
System.Web.WebPages.WebPageBase.Write(HelperResult result) +89
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action1 body) +234
System.Web.WebPages.WebPageBase.PopContext() +222
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +384
System.Web.Mvc.<>cDisplayClass1c.b19() +33
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,    ResultExecutingContext preContext, Func1 continuation) +798756
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList1 filters, ActionResult actionResult) +265
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +798832
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
System.Web.Mvc.<>cDisplayClassb.b5() +62
System.Web.Mvc.Async.<>cDisplayClass1.b0() +20
System.Web.Mvc.<>cDisplayClasse.bd() +54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.225
[HttpException(0x80004005):无法使用前导..退出顶部目录上方。]
System.Web.Util.UrlPath.ReduceVirtualPath(字符串路径)+11495983
System.Web.Util.UrlPath.Reduce(字符串路径)+171
System.Web.VirtualPath.Combine(VirtualPath relativePath)+214
System.Web.virtualPath.Combine(stringbasepath,stringrelativePath)+158
System.Web.Mvc.PathHelpers.GenerateClientUrlInternal(HttpContextBase httpContext,String contentPath)+385
System.Web.Mvc.UrlHelper.GenerateUrl(字符串routeName、字符串actionName、字符串controllerName、RouteValueDictionary routeValues、RouteCollection RouteCollection RouteCollection、RequestContext RequestContext、Boolean includeImplicitMvcValues)+257
MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver.ResolveUrl(MVCSitemPanode MVCSitemPanode、字符串区域、字符串控制器、字符串操作、IDictionary2路由值)+1034
MvcSiteMapProvider.MvcSiteMapNode.get_Url()+323
MvcSiteMapProvider.AuthorizeAttributeAllModule.IsAccessibleToUser(IControllerTypeResolver控制器TypeResolver、DefaultSiteMapProvider提供程序、HttpContext上下文、SiteMapNode节点)+135
MvcSiteMapProvider.DefaultAclModule.IsAccessibleToUser(IControllerTypeResolver控制器TypeResolver、DefaultSiteMapProvider提供程序、HttpContext上下文、SiteMapNode节点)+216
MvcSiteMapProvider.DefaultSiteMapProvider.IsAccessibleToUser(HttpContext上下文,SiteMapNode节点)+349
MvcSiteMapProvider.Web.Html.MenuHelper.BuildModel(MvcSiteMapHtmlHelper帮助器、SiteMapNode启动节点、布尔启动节点InChildLevel、布尔显示启动节点、Int32 maxDepth、布尔向下钻取到当前)+361
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper帮助器、字符串模板名、SiteMapNode startingNode、Boolean startingNodeInChildLevel、Boolean showStartingNode、Int32 maxDepth、Boolean drillDownToCurrent)+87
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper帮助器、SiteMapNode startingNode、Boolean startingNodeInChildLevel、Boolean showStartingNode、Int32 maxDepth、Boolean drillDownToContent)+40
MvcSiteMapProvider.Web.Html.MenuHelper.Menu(MvcSiteMapHtmlHelper帮助器,从CurrentNode开始的布尔型启动,布尔型启动NodeInChildLevel,布尔型显示启动节点)+86
ASP.\u Page\u Views\u Shared\u SfMaster\u cshtml.Execute()在c:\webmaster\projects\jclcorp\jclcorpmvc\Views\Shared\\u SfMaster.cshtml:22中
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy()+104
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext-pageContext、TextWriter-writer、WebPageRenderingBase-startPage)+173
System.Web.WebPages.WebPageBase.Write(HelperResult结果)+89
System.Web.WebPages.WebPageBase.rendersUrounding(字符串partialViewName,Action1 body)+234
System.Web.WebPages.WebPageBase.PopContext()+222
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext上下文)+384
System.Web.Mvc.cDisplayClass1c.b19()+33
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter筛选器,ResultExecutingContext预文本,Func1 continuation)+798756
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList1 filters,ActionResult ActionResult)+265
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,String actionName)+798832
System.Web.Mvc.Controller.ExecuteCore()+159
System.Web.Mvc.ControllerBase.Execute(RequestContext)+335
System.Web.Mvc.cDisplayClassb.b5()+62
System.Web.Mvc.Async.cDisplayClass1.b0()+20
System.Web.Mvc.cDisplayClasse.bd()+54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+469
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+375
版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.225

我发布此消息是希望其他人会发现它有所帮助。我在iis 7中使用url重写时收到此错误。此错误仅发生在Safari和Chrome中。解决方案是添加文件夹App_浏览器,并将新的.browser文件添加到解决方案中。在文件中添加此代码段:

<browser refID="safari1plus">
 <controlAdapters>
  <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
 </controlAdapters>
</browser>

我发布此消息是希望其他人会发现它有所帮助。我在iis 7中使用url重写时收到此错误。此错误仅发生在Safari和Chrome中。解决方案是添加文件夹App_浏览器,并将新的.browser文件添加到解决方案中。在文件中添加此代码段:

<browser refID="safari1plus">
 <controlAdapters>
  <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
 </controlAdapters>
</browser>

试试这个解决方案。它帮助了我

在路由配置中创建额外规则解决了问题

尝试解决方案。这对我很有帮助


在路由配置中创建额外规则解决了问题

这对我有帮助:thansk@s1mm0t。它对你有效吗?我放弃了用mvc重写url,而是在路由上使用ActionFilterAttribute->RemovedUpplicateContentAttribute()这对我很有帮助:thansk@s1mm0t。它对你有用吗?我放弃了用mvc重写url,而是用ActionFilterAttribute->RemovedUpplicateContentAttribute()在路由上进行重写