Win7 IIS Global.asax执行的问题
我的网站发布到台式机10.1.3.168:8080中默认页面为 default.aspx
Global.asax文件中其它均为默认,自己没添加什么代码,只在下面这个函数中加入了以下代码:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if(Request.Url.ToString()=="http://10.1.3.168:8080/abcd")
{
Response.Redirect("http://www.sina.com.cn");
Response.End();
}
else
{
Response.Redirect("http://www.baidu.com");
Response.End();
return;
}
}
此时,在浏览器中输入 http://10.1.3.168:8080
可以正常转到http://www.baidu.com页面,
这说明,Application_BeginRequest是可以执行的
另外,在浏览器中输入 http://10.1.3.168:8080/log.aspx
实质上,log.aspx是存在的文件。
也可以正常转到http://www.baidu.com页面,
这也能够说明,Application_BeginRequest是可以执行的
但是,当我在浏览器中输入
http://10.1.3.168:8080/abcd
就会报错说找不到页面,或者被删除之类的信息
奇怪的是:
以上同样的操作过程,在我的开发笔记本中也同样部署了一个网站,
是可以正常跳转到百度或新浪的,用vs2010调试时也可以跳转,
唯独在台式机上不行,
各位大侠,是环境什么的原因吗?
--------------------编程问答-------------------- 你输入 http://10.1.3.168:8080/abc 试试 --------------------编程问答-------------------- 输入 http://10.1.3.168:8080/abc
仍然报找不到的错误。
而且,发现一个问题:
我改成下面这样:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
//无条件转向
Response.Redirect("http://www.baidu.com");
Response.End();
}
此时,在浏览器中输入 http://10.1.3.168:8080
可以正常转到http://www.baidu.com页面,
这说明,Application_BeginRequest是可以执行的
另外,在浏览器中输入 http://10.1.3.168:8080/log.aspx
实质上,log.aspx是存在的文件。
也可以正常转到http://www.baidu.com页面,
这也能够说明,Application_BeginRequest是可以执行的
但是,当我在浏览器中输入
http://10.1.3.168:8080/abcd
就会报错说找不到页面,或者被删除之类的信息
输入 http://10.1.3.168:8080/abc
也会报错,
这是为什么?
我笔记本部署的网站和vs2010调试环境下都正常。
唯独台式机部署的网站是这个问题,
我重启IIS、重启机器,都不行。 --------------------编程问答-------------------- 如果 IIS 7.0 在集成模式下运行,App_Code 文件夹或 Bin 文件夹中的自定义模块将应用于请求管线中的所有请求。 Global.asax 文件中的事件处理程序代码则只应用于映射到某个 ASP.NET 处理程序的请求。
--------------------编程问答--------------------
你应该在APPLICATION_ERROR 里面处理404
而不是在Application_BeginRequest
--------------------编程问答--------------------
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = null;
if (HttpContext.Current.Server.GetLastError() != null)
{
ex = HttpContext.Current.Server.GetLastError().GetBaseException();
if (ex.GetType() == typeof(HttpException))
{
HttpException httpException = (HttpException)ex;
if (httpException.GetHttpCode() == 404)
{
Server.Transfer(“~/ErrorHttp404.aspx”);
return;
}
}
}
检查这2个环境的404 是怎么设置的 --------------------编程问答-------------------- 回5楼的:
两台机器的404全是默认设置,如下图:
--------------------编程问答-------------------- 回4楼的:
--------------------编程问答-------------------- abcd你的网站中有这个目录吗?网站的目录权限有没有问题呢?嘿嘿 --------------------编程问答-------------------- abcd是不存在 ,但是我在开发机中运行,是成功被
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Response.Redirect("http://www.baidu.com");
Response.End();
}
转向了的,
但台式机上就不转向,
而且,我也因此重装了系统,重装了IIS,
仍然不可行。
补充:.NET技术 , ASP.NET