读书人

有关问题还没解决整理下再问不懂的

发布时间: 2013-07-16 22:38:05 作者: rapoo

问题还没解决,整理下再问,不懂的也请帮顶散分,谢谢。
前几天发了一个提问帖:http://bbs.csdn.net/topics/390512921
不知道是我表达有问题,还是怎么的,貌似回答的都不在点上。我整理下我的问题,请各位指教。如果有细节描述不详细的而不好作答,请与我沟通。
详情如下:
公司有一个Web解决方案,用的是工厂模式,专门写了个项目用Routing来控制URL,业务逻辑为:网址经过解析找到相应的模板,根据模板里的标签数据相应的数据并显示出来,当网址经过解析找不到可用的模板时则抛出异常,捕获异常后读取404页面模板,并输出“找不到文件”的自定义提示信息,而不是跳转到类似error.aspx的自定义错误页面。
相关代码片断:


//根据URL获取模板文件fulltemplateFilename,因为文件不存在,所以读取模板文件的操作就会出错,获取异常,继续查找默认模板文件夹里的模板文件,不存在,也没有读取到,于是调用MessageException来输出错误提示
try
{
sr = new System.IO.StreamReader(fulltemplateFilename, System.Text.Encoding.UTF8);
content = sr.ReadToEnd();
}
catch (Exception ex)
{
if (sr == null)
{
#region 调用系统默认模板
string DefaultTemplateFilename = System.Web.HttpContext.Current.Server.MapPath(FullFileName.Replace(this.Website.CallbackUrl, "/Template/Default/V0.1/"));
dependencyList.Add(DefaultTemplateFilename);
try
{
sr = new System.IO.StreamReader(DefaultTemplateFilename, System.Text.Encoding.UTF8);
content = sr.ReadToEnd();
}
catch (Exception e)
{
if (sr == null)
throw new MessageException("网页文件(" + FullFileName + ")不存在");//设置自定义错误信息
else
throw new Exception(e.Message);
}
#endregion
}
else
throw new Exception(ex.Message);
}

输出错误提示的相关代码片断:
catch (MessageException me)
{
#region
//当未定义错误页模板时,输出系统界面
if (string.IsNullOrEmpty(website.Error.Redirect) == true)
{


Message.ShowMessage(me, 500);
Context.Response.End();
}
//将异常保存到Session中
Context.Session.Add("LastError", me);

IPage errorpage = website.GetErrorPage();//读取错误页面模板,输出自定义错误信息
Context.Response.StatusCode = 500;
errorpage.Render();
Context.Response.End();
}


问题来了:在本机调试访问不存在的页面能正常显示“网页文件(****)不存在”这样的自定义错误信息。部署到服务器上后访问站点,测试不存在的页面,发现只报“500 - 内部服务器错误。”在服务器上访问测试又能正常显示自定义提示信息。

我的猜想:由于自定义错误信息页面输出的是500状态,可能是由于IIS的设置问题,导致服务器不向远程客户商输出详细错误信息,我用的是Win2008Server,IIS7,不知道在哪设置。
又或者是其它原因?请指教。

另:
1、与IE的“显示HTTP友好错误提示”设置无关,这个我检查过的。
2、配置文件里自定义错误选项配置应该也没关系,我改过各种可能的参数也不起作用,最初的配置为:

[解决办法]
有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢帮顶
[解决办法]
项上有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢
[解决办法]
有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢
[解决办法]
有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢帮顶,接分
[解决办法]
定义错误页的问题,在本地和异地浏览器显示是不同的,
本地要显示错误提示
异地浏览器要显示错误页
[解决办法]
楼主啊,既然是你自定义了错误提示页面了,可以不返回错误状态码的哈,这样应该就好吧
[解决办法]
帮顶有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢
[解决办法]



散分了,赶紧来接分。

接分,接分有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢
[解决办法]
有关问题还没解决,整理下再问,不懂的也请帮顶散分,多谢

读书人网 >asp.net

热点推荐