为什么我的机器需要完整的IIS重置才能看到ASP.NET项目的代码更改?

Hel*_*ant 6 c# asp.net iis visual-studio-2010

我注意到我正在研究的VS2010 C#网站项目似乎总是需要一个iisreset才能看到我对项目中文件后面的代码所做的更改.我注意到它没有正确版本的程序集,因为当我尝试调试Visual Studio时,不会让我在我已经更改的代码文件中放置断点.

我本以为做一个应用程序池重启就足够了,但我们的后期构建步骤就是这样做的,但这似乎还不够.

可能在我的机器或项目中没有错误配置的东西来实现这一点?

Ari*_*tos 1

-我假设你运行 asp.net 4-

在 web.config 中,这是用于调试的值,可以减少编译次数

<compilation debug="true" batch="false" optimizeCompilations="true"
  defaultLanguage="C#" targetFramework="4.0">
Run Code Online (Sandbox Code Playgroud)

您可以更改批次optimizeCompilations,看看您的问题是否得到解决。

现在我将告诉你一些我注意到的其他原因。

当你有一个带有默认参数的函数时,例如

foo(int cValueA, int cValueB = 23)
Run Code Online (Sandbox Code Playgroud)

由于某种原因你将其更改为

foo(int cValueA, int cValueB = 23, int cValueC = 34)
Run Code Online (Sandbox Code Playgroud)

或者

foo(int cValueA)
Run Code Online (Sandbox Code Playgroud)

所有对该函数的调用都具有单个值,无法捕获函数的更新,因此它们使用旧代码。解决这个问题的一种方法是,我所做的就是搜索对该函数的所有引用,然后打开文件,在末尾添加一个空格并保存它,这样我就可以更改文件的日期时间,为编译器提供请注意,需要更新。