【问题标题】:What would cause a bogus 404 for an IIS-served ASPX page?什么会导致 IIS 服务的 ASPX 页面出现虚假的 404?
【发布时间】:2009-02-25 08:22:06
【问题描述】:

我有一个相当简单的 ASP.NET 应用程序,在 Visual Studio 中设置为 Web 应用程序项目。 IIS 拒绝提供一个名为“invoice.aspx”的特定 aspx 文件。我使用的 URL 绝对正确,并且该目录中的其他 aspx 页面加载并执行得很好。但不是这一页!我在 Page_Load 中设置了一个断点,以确保没有发生任何有趣的事情,但断点永远不会被击中。 @Page 指令看起来不错...文件权限与目录中的其他文件相同...在构建过程中没有错误。我在这里想念什么?这让我很困惑。这是 Windows XP 开发盒上的 IIS6。

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

    好吧,我知道如果我发布它,我会自己找到答案...... :)

    原来是缺少 DLL。无法创建依赖对象,因此出错。为什么它不只是给我一个缺失的组装错误?啊,这是个好问题!使用以下错误代码示例答案:

    public partial class Invoice : System.Web.UI.Page
    {
        DependentObject SomeObject = new DependentObject();
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
    
        }
    }
    

    如果缺少 DependentObject 代码的程序集... Invoice 对象,因此要提供的页面,无法初始化...服务器找不到它...我们有一个 404。

    我不认为自己是 C# 方面的专家,但我的印象是上面的代码是你不应该做的事情。 (对吗?)不知道为什么编译器允许这样做。

    将初始对象创建移动到 Page_Load 会产生更有用的缺失程序集异常。

    public partial class Invoice : System.Web.UI.Page
    {
        DependentObject SomeObject;
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            SomeObject = new DependentObject();
        }
    }
    

    谢谢大家,感谢您的建议。

    【讨论】:

      【解决方案2】:

      发送大量数据、长查询字符串或以其他方式发出内置 IIS7 urlscan 可能会阻止的请求?如果 IIS7 阻止请求,它会发出 404 错误。

      【讨论】:

        【解决方案3】:

        您是否尝试过重命名文件并尝试访问它?

        另外,使用记事本将文件的全部内容复制到一个新文件中并保存。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-03
          • 1970-01-01
          • 2013-08-02
          • 1970-01-01
          • 2019-03-16
          相关资源
          最近更新 更多