Ошибка обработчика HTTP при загрузке файлов - SSL - PullRequest
1 голос
/ 29 апреля 2010

Хорошо, большая проблема, поскольку это затрагивает два проекта на нашем новом сервере. У нас есть файл, который загружается пользователями, файлы загружаются с помощью HTTPHandler. После перемещения сайта на сервер и установки SSL загрузка перестала работать, и мы получаем сообщение об ошибке «Невозможно загрузить DownloadDocument.ashx« с сайта ». DownloadDocument.ashx - это страница обработчика, заданная в файле web.config, и Кнопка, которая идет там, является гиперссылкой с идентификатором документа в виде строки запроса. Я прочитал статью на http://support.microsoft.com/kb/316431 и прочитал несколько других запросов на этом сайте, но, похоже, ничего не работает. Эта проблема возникает только в IE и работает нормально, когда я запускаю его на сервере в http вместо https.

      public override void HandleRequest(HttpContext context)
    {
        Guid guid = new Guid(context.Request.QueryString["ID"]);

        DataTable dt = Documents.GetDocument(guid);
        if (dt != null)
        {
            context.Response.Cache.SetCacheability(HttpCacheability.Private);

            context.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", dt.Rows[0]["DocumentName"].ToString()));
            context.Response.AddHeader("Content-Transfer-Encoding", "binary");
            context.Response.AddHeader("Content-Length", ((byte[])dt.Rows[0]["Document"]).Length.ToString());
            context.Response.ContentType = string.Format("application/{0}", dt.Rows[0]["Extension"].ToString().Remove(0, 1));

            context.Response.Buffer = true;

            context.Response.BinaryWrite((byte[])dt.Rows[0]["Document"]);
            context.Response.Flush();
            context.Response.End();
        }
    }

Выше приведен мой текущий код для запроса. Я использовал базовый обработчик на http://haacked.com/archive/2005/03/17/AnAbstractBoilerplateHttpHandler.aspx. Любые идеи о том, что это может быть и как мы можем это исправить.

Заранее спасибо за все ответы.

...