加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP MVC.NET3本地IIS7对象引用错误

发布时间:2020-12-16 10:01:36 所属栏目:asp.Net 来源:网络整理
导读:在开发mvc Web应用程序期间,我正在鼓励运行本地站点实例的问题.当我尝试重新加载页面时,在第一次加载成功后,我看到了以下错误.如果我通过VS虚拟服务器运行该站点,则没有问题.我的应用程序池正在以集成模式运行,它正在运行.net 4.知道为什么会这样吗?这个信
在开发mvc Web应用程序期间,我正在鼓励运行本地站点实例的问题.当我尝试重新加载页面时,在第一次加载成功后,我看到了以下错误.如果我通过VS虚拟服务器运行该站点,则没有问题.我的应用程序池正在以集成模式运行,它正在运行.net 4.知道为什么会这样吗?这个信息足够吗?

[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.HttpServerVarsCollection.Get(String name) +109
System.Web.Mvc.UrlRewriterHelper.WasThisRequestRewritten(HttpContextBase httpContext) +59
System.Web.Mvc.PathHelpers.GenerateClientUrlInternal(HttpContextBase httpContext,String contentPath) +213
System.Web.Mvc.PathHelpers.GenerateClientUrlInternal(HttpContextBase httpContext,String contentPath) +168
System.Web.Mvc.PathHelpers.GenerateClientUrl(HttpContextBase httpContext,String contentPath) +148
LeadManager.Web.UI.Helpers.MenuHelper.GenerateUrl(String url) in C:DevelopmentHgLeadManagerWeb.UIHelpersMenuHelper.cs:1132
LeadManager.Web.UI.Helpers.MenuHelper.BuildLeadManagementMenu(Menu navMenu,Agent agent) in C:DevelopmentHgLeadManagerWeb.UIHelpersMenuHelper.cs:554
LeadManager.Web.UI.Helpers.MenuHelper.AddNavMenu(Agent agent) in C:DevelopmentHgLeadManagerWeb.UIHelpersMenuHelper.cs:530
ASP._Page_Views_Shared__Layout_cshtml.Execute() in c:DevelopmentHgLeadManagerWebViewsShared_Layout.cshtml:115
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +279
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +103
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage) +172
System.Web.WebPages.WebPageBase.Write(HelperResult result) +88
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName,Action1 body) +233
System.Web.WebPages.WebPageBase.PopContext() +233
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +377
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +32
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,ResultExecutingContext preContext,Func
1 continuation) +748196
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,Func1 continuation) +748196
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList
1 filters,ActionResult actionResult) +265
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName) +748160
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +334
System.Web.Mvc.<>c_DisplayClassb.b_5() +62
System.Web.Mvc.Async.<>c_DisplayClass1.b_0() +15
System.Web.Mvc.<>c_DisplayClasse.b_d() +52
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +437
System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +354

MenuHelper用于构建导航菜单.失败的代码是if之外的return语句:

private static string GenerateUrl(string url)
{
    if (instance == null)
    {
        // hack to enable using this on old web forms pages
        return UrlHelper.GenerateContentUrl(url,new HttpContextWrapper(HttpContext.Current));
    }
    return (new UrlHelper(instance.htmlHelper.ViewContext.RequestContext)).Content(url);
}

private static string GenerateUrl(string actionName,string controllerName)
{
    if (instance == null)
    {
        // hack to enable using this on old web forms pages
        return GenerateUrl(String.Format("{0}/{1}",controllerName,actionName));
    }

    if (instance.htmlHelper == null)
        throw new InvalidOperationException("htmlHelper has not been populated.");
    if (instance.htmlHelper.ViewContext == null)
        throw new InvalidOperationException("ViewContext has not been populated.");
    if (instance.htmlHelper.ViewContext.RequestContext == null)
        throw new InvalidOperationException("RequestContext has not been populated.");

    UrlHelper urlHelper = new UrlHelper(instance.htmlHelper.ViewContext.RequestContext);
    if (urlHelper == null)
        throw new InvalidOperationException("UrlHelper has not been populated.");

    if (String.IsNullOrEmpty(actionName))
        throw new InvalidOperationException("actionName has not been populated.");
    if (String.IsNullOrEmpty(controllerName))
        throw new InvalidOperationException("controllerName has not been populated.");

    return (urlHelper.Action(actionName,controllerName));
}

解决方法

我发现了这个问题,它是IIS7 URL重写模块.我不知道为什么或如何,但我通过卸载解决了这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读