Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
.net IIS在更改虚拟目录后引发NullReferenceException_.net_Asp.net Mvc_Iis - Fatal编程技术网

.net IIS在更改虚拟目录后引发NullReferenceException

.net IIS在更改虚拟目录后引发NullReferenceException,.net,asp.net-mvc,iis,.net,Asp.net Mvc,Iis,在部署MVC应用程序的新版本后,IIS有时会立即从System.Web.HttpApplication.GetNotificationContextProperties抛出NullReferenceException。我们运行的构建步骤是: 将新二进制文件复制到服务器上的新目录 将IIS指向新的虚拟目录 紧接着,加载页面会抛出一个错误 完整的异常消息是: [NullReferenceException:对象引用未设置为 反对。] System.Web.HttpApplication.GetNot

在部署MVC应用程序的新版本后,IIS有时会立即从
System.Web.HttpApplication.GetNotificationContextProperties
抛出
NullReferenceException
。我们运行的构建步骤是:

  • 将新二进制文件复制到服务器上的新目录
  • 将IIS指向新的虚拟目录
  • 紧接着,加载页面会抛出一个错误

    完整的异常消息是:

    [NullReferenceException:对象引用未设置为 反对。]

    System.Web.HttpApplication.GetNotificationContextProperties(Boolean&isReentry、Int32&eventCount)+116

    System.Web.PipelineStepManager.ResumeSteps(异常错误) +197 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext 上下文,异步回调cb)+89 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext)+189

    用IISReset点击服务器将清除错误,站点将正常运行


    到目前为止,我发现的大多数解决方案都提到在应用程序启动方法中连接事件处理程序时会出现问题,但我们没有这样做的代码。有人知道我们如何在不在每次部署上运行IISReset的情况下解决此问题吗?

    不要在启动时立即调用GetNotificationContextProperties?捕获异常并重试?捕获、等待并重试?您是否为新应用程序创建了新应用程序池和/或停止了旧应用程序池为旧应用程序提供服务?@RossBush我们没有启动新应用程序池,它们会在部署过程中持续存在。我的印象是,重新指向虚拟目录无论如何都会回收应用程序池。@topher-很可能是这样。我很想知道为端点提供服务的应用程序池是否在指向新位置后立即被回收。我不知道你是否可以在指向一个新位置后立即手动回收应用程序池,然后看看你是否可以复制,而不是完全重置IIS?还有,你为什么不重用旧的应用程序文件夹呢?只是出于好奇,你为什么不使用它来发布你的网站?