【问题标题】:Modifying ASPX.CS file has no effect修改 ASPX.CS 文件没有效果
【发布时间】:2013-09-07 23:56:40
【问题描述】:

我的一位同事维护着一个旧的 ASP.NET 站点。今天她遇到了一个奇怪的问题:

  1. 有一个 ASPX 页面,它会引发异常。
  2. 如果她删除 ASPX.CS 文件中引发异常的行,异常仍然存在(使用相同的调用堆栈)。我确定她修改了调用堆栈引用的同一个文件。
  3. 如果她重命名 ASPX.CS 文件,服务器会说该文件丢失。
  4. 如果她在修改 ASPX.CS 后重新启动服务器,异常仍然存在。
  5. 如果她修改其他 ASPX.CS 文件,她会得到预期的效果。
  6. 她没有将页面编译成 DLL。

AFAIK IIS 应在文件内容更改时重新编译文件 (MSDN),但这种机制在这种情况下不起作用。我们应该做什么?提前感谢您的帮助。

【问题讨论】:

    标签: asp.net exception caching iis code-behind


    【解决方案1】:

    检查网站是网站还是网络应用程序。 Web 应用程序将后面的所有代码编译成 DLL,并将它们放入“bin”文件夹中。为了使代码更改可用,您必须在 VS 中“构建”应用程序。

    如果它不是一个已编译的 Web 应用程序,那么她应该检查前端页面是否指向正确的代码隐藏页面。有时,如果您手动复制和重命名文件,这部分可能会指向原始页面,而不是新的 .cs 文件。

    【讨论】:

    • 她没有把这个 ASPX.CS 编译成 DLL,所以我认为 IIS 会编译它。 AFAIK IIS 应该在修改后重新编译它:msdn.microsoft.com/library/ms366723 这适用于其他页面,但不适用于此文件。
    • 虽然她可能不必编译整个站点,但也许这一页已编译,并且 DLL 已添加到项目中。检查 bin 文件夹中是否存在与该文件类似的名称的 DLL。如果它不存在,请尝试从后面的代码中删除所有代码并在加载中放入一些事件,例如 response.clear、response.write("test") 和 response.end,以查看该事件是否被触发。
    猜你喜欢
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2018-05-22
    • 1970-01-01
    • 2011-09-14
    • 2013-10-19
    相关资源
    最近更新 更多