c# - 为什么我的asp页面执行缓存代码
问题描述
我有一个应用程序要接管一个非常奇怪的问题。
背景:我 rdp 进入的 Windows Server 2012 上运行的 60 多个相同的 IIS 应用程序。
除了一些图像文件和 web.config 文件之外,每个应用程序都是相同的。(是的,我知道)
应用程序没有被编译,而只是作为 cs 文件运行。也没有 proj 文件或 sln 文件。
有一个已编译的应用程序,它作为计划任务运行,并使用每个应用程序文件夹中的一些文件。
代码是 C#,我正在用 notepad++ 编辑它。
问题:我一直在尝试更新其中一个测试应用程序中的一些代码,但我的更改似乎没有生效。(特别是更新日志文件并发送电子邮件)。当前的电子邮件有效,但我的新电子邮件没有出现,我的日志文件也没有出现。
我试图在另一个测试应用程序中对其进行测试,以查看它是否也在那里失败,并发现该网站在特定文件的特定行的某些代码中出现错误。
问题是,这行代码在实际的 cs 文件中不在同一行。
然后我在更高的位置添加了另一行,看看是否可以得到除以零的错误。
结果相同。同一行代码以相同的行号失败。完全没有变化。
好像我的代码正在被缓存,我无法刷新它。
我尝试确保它没有被唯一的计划任务缓存并完全循环 IIS(在根目录下)。
还在发生。
我知道一个事实,这不是一个 exe 隐藏在某个地方的问题,因为两周前我对代码进行了更改并且它起作用了。我的改变出现了。我也知道我正在编辑正确的文件。我在 IIS 中使用“探索”打开了该文件夹。
没有 obj 文件夹。每个应用程序文件夹中都有一个 bin 文件夹,但 bin 文件夹中除了 nuget 包 dll 之外没有任何内容。
解决方案
好的。因此,在我花了一周时间尝试将每个应用的 web.config 设置为使用 tempDirectory=基于应用名称的新临时目录后,我终于发现之前的编码人员已经制作了相关文件的两个副本。相同的副本。一种供计划任务使用,另一种供网站本身使用。
因此,在我试图检测代码结果的变化时,我一直在更改计划任务使用的那个。
当然,在我与之前的开发人员(仍在与我们合作)讨论问题的几次中,他从不费心提出解决方案,尽管他已经使用此代码工作了几年。
更新正确的副本解决了这个问题。我还发现过去几周我的头发脱落速度比以往任何时候都快。
推荐阅读
- vuetify.js - 如何使用 Vuetify 将 v-card 放在页面中心
- javascript - React Js 中的路由
- c# - 如何使用 TOptions 在 .net core 3.1 中配置和注入 JwtOptions?
- permissions - 我可以授予管道权限,以便它可以使用 API 读取 Azure Devops 中不同项目的信息吗?
- javascript - React 中的重新渲染过多
- powershell - Powershell:Get-Process 不会枚举所有进程模块
- mysql - 访问远程数据库时连接 ETIMEDOUT 错误,即使端口 3306 已打开
- lua - lua 字符串索引表并解压
- javascript - 将 data:image/gif 转换为二进制 PNG 或 JPEG 的最佳方法?
- java - 在数组的帮助下反转字符串的元音并返回一个字符串