微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.至少这对你来说会更快.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐