当我从包含网格的网站下载文件时,在网格栏中有一个下载按钮

时间:2010-06-02 23:01:06

标签: c# asp.net sql-server-2005 iis-6

我有一个名为filedownload.aspx的页面,它包含网格和网格,它们是三列,在其中一列中有一个按钮,表示下载,当用户点击该按钮时,它选择文件ID并将下载框提供给用户有三个选项 打开保存并取消。

现在的问题是,当用户点击网格中的下载按钮时,它会出现以下错误: INTERNET EXPLORER无法从ABC.XYZ.COM下载FILEDOWNLOAD.ASPX(我的网址示例) 互联网探索者无法打开本网站。请求网站无法使用或无法找到。

还有一件事我们最近实施了SSL,而且我们已经通过HTTP移动到了HTTPS,并且网址中的名称已经改变了,而且它现在也是如此。

现在,当我更改网页时,网页工作正常。

任何人都可以帮助我吗?

我的代码:我的代码:

protected void gdvfiledownload_RowCommand(object sender,GridViewCommandEventArgs e)     {             尝试             {                if(e.CommandName ==“Download”)                {                  int indexfile = Convert.ToInt32(e.CommandArgument.ToString());                  GridViewRow row = gdvfiledownload.Rows [indexfile];                  string fileuserid = Ldapinfo.getName(Page.User.Identity.Name);                  string batchfilename = Convert.ToString(row.Cells [0] .Text.ToString());                  // string requestedby = Convert.ToString(row.Cells [3] .Text.ToString());

            SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString.ToString());
            cn.Open();
            con = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring "].ConnectionString.ToString());
            con.Open();
            DataSet ds = new DataSet();
            //SqlDataAdapter da = new SqlDataAdapter("sp_Insert_CAV2_File", cn);
            SqlCommand sqlCommand = new SqlCommand("sp_proc ", cn);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@batch_name", batchfilename);
            sqlCommand.Parameters.AddWithValue("@curr_user", fileuserid);
            SqlDataAdapter da = new SqlDataAdapter(sqlCommand);
            da.Fill(ds);
            StringBuilder  strFD = new StringBuilder();
            for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                for (int j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
                {
                    strFD.Append(ds.Tables[0].Rows[i][j].ToString());
                    strFD.Append(" ");
                }
                strFD.AppendLine();
            }

            Response.Clear();
            Response.AddHeader("content-disposition", "attachment;filename=Notepad.txt");
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "application/vnd.text";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

            Response.Write(strFD.ToString());
            Response.End();
            cn.Close();
            con.Close();
            cn.Dispose();
            con.Dispose();
        }
    }
    catch (Exception ex)
    {
        lblfilemess.Text = ex.Message.ToString();
    }
}

谢谢, SMARTDEV

1 个答案:

答案 0 :(得分:0)

通过一些研究,我发现了几个可能的原因:

1)如果您使用的是IE 6.0 SP1,如果在Internet Explorer中选中了“不将加密的页面保存到磁盘”复选框,则会出现此问题。

2)原因也可能是已知的IIS 6缓存问题。尝试这些步骤,看看他们是否解决了问题:

  • 打开IIS管理员
  • 查看网站的属性
  • 单击“HTTP标头”选项卡
  • 取消选中“启用内容过期”复选框。

来源:
http://support.microsoft.com/kb/812935
http://www.alagad.com/blog/post.cfm/error-internet-explorer-cannot-download-filename-from-webserver