首页 > 解决方案 > 为什么我的asp页面执行缓存代码

问题描述

我有一个应用程序要接管一个非常奇怪的问题。

背景:我 rdp 进入的 Windows Server 2012 上运行的 60 多个相同的 IIS 应用程序。

除了一些图像文件和 web.config 文件之外,每个应用程序都是相同的。(是的,我知道)

应用程序没有被编译,而只是作为 cs 文件运行。也没有 proj 文件或 sln 文件。

有一个已编译的应用程序,它作为计划任务运行,并使用每个应用程序文件夹中的一些文件。

代码是 C#,我正在用 notepad++ 编辑它。

问题:我一直在尝试更新其中一个测试应用程序中的一些代码,但我的更改似乎没有生效。(特别是更新日志文件并发送电子邮件)。当前的电子邮件有效,但我的新电子邮件没有出现,我的日志文件也没有出现。

我试图在另一个测试应用程序中对其进行测试,以查看它是否也在那里失败,并发现该网站在特定文件的特定行的某些代码中出现错误。

问题是,这行代码在实际的 cs 文件中不在同一行。

然后我在更高的位置添加了另一行,看看是否可以得到除以零的错误。

结果相同。同一行代码以相同的行号失败。完全没有变化。

好像我的代码正在被缓存,我无法刷新它。

我尝试确保它没有被唯一的计划任务缓存并完全循环 IIS(在根目录下)。

还在发生。

我知道一个事实,这不是一个 exe 隐藏在某个地方的问题,因为两周前我对代码进行了更改并且它起作用了。我的改变出现了。我也知道我正在编辑正确的文件。我在 IIS 中使用“探索”打开了该文件夹。

没有 obj 文件夹。每个应用程序文件夹中都有一个 bin 文件夹,但 bin 文件夹中除了 nuget 包 dll 之外没有任何内容。

标签: c#asp.netiis

解决方案


好的。因此,在我花了一周时间尝试将每个应用的 web.config 设置为使用 tempDirectory=基于应用名称的新临时目录后,我终于发现之前的编码人员已经制作了相关文件的两个副本。相同的副本。一种供计划任务使用,另一种供网站本身使用。

因此,在我试图检测代码结果的变化时,我一直在更改计划任务使用的那个。

当然,在我与之前的开发人员(仍在与我们合作)讨论问题的几次中,他从不费心提出解决方案,尽管他已经使用此代码工作了几年。

更新正确的副本解决了这个问题。我还发现过去几周我的头发脱落速度比以往任何时候都快。


推荐阅读