【问题标题】:Why is my asp pages executing cached code为什么我的asp页面执行缓存代码
【发布时间】:2020-04-26 19:08:47
【问题描述】:

我正在接管一个应用程序,但遇到了一个非常奇怪的问题。

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

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

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

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

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

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

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

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

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

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

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

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

仍在发生。

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

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

【问题讨论】:

  • 这可能是由于卷影复制功能而发生的。如果您的 Web 应用程序相同,并且使用相同的应用程序池,则影子复制的程序集可能会引入冲突。这也可能导致本地机器出现问题(同时调试 asp.net 应用程序的不同分支),因为您收到一条消息“blah blah type 存在于 ... 和 ...”你能检查 windows root \Microsoft.Net\Framework(or Framework64)\<.netversion>\Temporary ASP.NET Files 文件夹,看看是不是这样?解决方案是为每个 Web 应用程序设置特定的卷影副本文件夹
  • @Oguz,该文件夹结构中似乎确实有文件,但我不知道哪个文件夹转到哪个应用程序。框架文件夹结构中似乎有_shadow文件夹,但没有framework64。但是我从那里做什么?看起来有很多 _shadow 文件夹,但不是每个文件夹都有一个。
  • @Oguz,另外,我注意到在 framework 和 framework64 中,最新的网络版本是 4.0.*,但是 web.config(无论如何对于一个应用程序)是 。不过,我不知道这是否表明了什么。
  • 您好,4.5.2 就像 4.0 的更新一样,所以没关系,您可以尝试为每个应用(如 App1、App2、App3)设置&lt;system.web&gt; &lt;compilation tempDirectory="D:\MyTempFiles\App1" /&gt; &lt;/system.web&gt; 吗?但请小心。我认为您需要在许多文件中进行此更改,因此请先备份 :)
  • 4.0.x 只是 .NET CLR 的版本,而不是 .net 框架。所以它很好。也可以在 IIS manager->configuration manager->system.web/compilation->tempDirectory 中指定临时目录。

标签: c# asp.net iis


【解决方案1】:

好的。所以在我花了一周时间尝试将每个应用程序的 web.config 设置为使用 tempDirectory=a new temp directory 基于应用程序名称后,我终于发现以前的编码人员已经复制了相关文件的两个副本。相同的副本。一种供计划任务使用,另一种供网站本身使用。

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

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

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

【讨论】:

    猜你喜欢
    • 2011-05-17
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2019-07-05
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多