首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-07-16 
问题还没解决,整理下再问,不懂的也请帮顶散分,谢谢。前几天发了一个提问帖:http://bbs.csdn.net/topics/390

问题还没解决,整理下再问,不懂的也请帮顶散分,谢谢。
前几天发了一个提问帖: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、配置文件里自定义错误选项配置应该也没关系,我改过各种可能的参数也不起作用,最初的配置为:

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



散分了,赶紧来接分。

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

热点排行