我有一个相当简单的ASP.NET应用程序,在Visual Studio中设置为Web应用程序项目。有一个名为“invoice.aspx”的特定aspx文件,IIS拒绝提供。我使用的URL肯定是正确的,并且此目录中的其他aspx页面加载并执行得很好。但不是这一页!我在Page_Load中设置了一个断点,以确保没有任何有趣的事情发生,但断点永远不会被击中。 @Page指令看起来很好......文件权限与目录中的其他文件相同...在构建期间没有错误。我在这里错过了什么?这令我困惑。这是Windows XP开发盒上的IIS6。
答案 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)
您是否尝试重命名该文件并尝试访问该文件?
另外,使用记事本将文件的全部内容复制到新文件中并保存。