有时执行出错时,IE中会把执行有误代码全显示在IE里,一条条的列出,往往把一些重要的加密代码、连接字符串都显示出来,不知有什么办法可以解决?
我想用try ..catch来保护代码,但就是正常的代码也会有异常:
try
{
  数据库连接
  查询
  登录
  关闭数据库连接
}
catch
{
Page.Response.Redirect("error.aspx",true);
}这样的情况,为什么总是都会出现异常,使页面转到error.aspx?如果去掉try catch,则是正常的执行,也没什么问题。我是想在数据库连接时,不会因为一些异常情况,把数据库连接的字符串与重要的代码都显示在浏览器里,而直接转到另 一个页面去。

解决方案 »

  1.   

    关闭数据库连接
    写到 finally里去登录
    ??
      

  2.   

    何必这样做?
    Web.config配置一下不就行了?如下: <!--  自定义错误信息
              设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
              为每个要处理的错误添加 <error> 标记。          "On" 始终显示自定义(友好的)信息。
              "Off" 始终显示详细的 ASP.NET 错误信息。
              "RemoteOnly" 只对不在本地 Web 服务器上运行的
               用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
               不向远程客户端显示应用程序的详细信息。
        -->
        <customErrors 
        mode="Off" 
        /> 
      

  3.   

    jianyi0115() 举个例子看看吧?如何"为每个要处理的错误添加 <error> 标记。"?
    或是有错误时,转到一个页面如何写代码?
      

  4.   

    <customErrors defaultRedirect="url"
                  mode="On|Off|RemoteOnly">
       <error statusCode="statuscode"
              redirect="url"/>
    </customErrors>
    defaultRedirect可以指定默认错误叶
      

  5.   

    <customErrors mode="RemoteOnly" defaultRedirect="errorpage.aspx"/>做一个errorpage.aspx 的网页这样出错的时候,远端用户只能看到errorpage.aspx
      

  6.   

    try
    {
      数据库连接
    }
    catch
    {
    Page.Response.Redirect("error.aspx",true);
    }  查询
      登录
      关闭数据库连接