asp.net – 如何避免重置IIS以确保调试器附加*正确* IIS工作进程并命中断点?

我维护一个ASP.NET Web应用程序(.NET 3.5),它作为旧的“伞形”ASP网站的“插件”运行.

为了在做出一些改变后进行调试,我……

>构建webapp和
>加载“伞”网站
>这反过来将实例化IIS工作进程(即在其自己的应用程序池中与旧的ASP东西分开).
>然后我将我的VS2008调试器连接到该过程.

现在我已经转移到在IIS 7中托管所有这些,除非我在步骤1和2之间执行IIS重置,否则我无法让调试器达到断点.

为什么会这样,我该如何解决?我想这是一个IIS 7设置?

解决方法

一个新的流程真正由伞网站启动,还是只是寻找.net网站流程并找到它,只是使用它.我不认为IIS中必须拾取新部署的代码.必须更改某些文件(例如web.config)以使进程自行回收并获取更改,否则IIS将继续运行当前应用程序池进程中的代码.

我认为这就是IIS的工作方式 – 当您第一次浏览您的站点时,IIS会启动运行它的应用程序池,并且该站点运行并存在于内存中.它停止查看大多数物理文件,只是从内存中运行该站点.如果对代码库进行一些更改,IIS将不一定会接受这些更改.只有当您更改某些文件(如web.config)时,IIS才会回收应用程序池,从而获取您所做的更改.这导致IIS运行一组代码,而VS2008运行不同(更新)的代码.当代码不匹配时,您无法调试它.

我想你可能会添加到哪些文件被观看更改,但我不知道如何做到这一点.

您可以只回收应用程序池,而不是执行IISRESET.至少这对你来说会更快.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....