什么会导致IIS服务的ASPX页面出现虚假404?

时间:2009-02-25 08:22:06

标签: asp.net iis

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

3 个答案:

答案 0 :(得分:2)

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

原来是一个丢失的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对象,因此要提供的Page,无法初始化......服务器找不到它......我们有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();
    }
}

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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