Вопрос

Я пытаюсь обслуживать файл PDF из базы данных в ASP.NET, используя HTTP-обработчик, но каждый раз, когда я перехожу на страницу, я получаю ошибку

XML Parsing Error: no element found
Location: https://ucc489/rc/NoteFileHandler.ashx?noteId=1,msdsId=3
Line Number 1, Column 1:

Вот мой код HTTPhandler:

public class NoteFileHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.QueryString.HasKeys())
        {
            if (context.Request.QueryString["noteId"] != null && context.Request.QueryString["msdsId"] != null)
            {
                string nId = context.Request.QueryString["noteId"];
                string mId = context.Request.QueryString["msdsId"];
                DataTable noteFileDt = App_Models.Notes.GetNoteFile(nId, mId);
                if (noteFileDt.Rows.Count > 0)
                {
                    try
                    {
                        context.Response.Clear();
                        context.Response.AddHeader("content-disposition", "attachment;filename=" +
                                                   noteFileDt.Rows[0][0] + ".pdf");
                        context.Response.ContentType = "application/pdf";
                        byte[] file = (byte[])noteFileDt.Rows[0][1];
                        context.Response.BinaryWrite(file);
                        context.Response.End();
                    }
                    catch
                    {
                        context.Response.ContentType = "text/plain";
                        context.Response.Write("File Not Found");
                        context.Response.StatusCode = 404;
                    }

                }
            }
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Есть ли что-нибудь еще, что мне нужно сделать (конфигурация сервера / что угодно), чтобы загрузить мой файл PDF?

Это было полезно?

Решение

Строка запроса не выглядит правильно:

https://ucc489/rc/NoteFileHandler.ashx?noteId=1,msdsId=3

Конечно ?noteId=1,msdsId=3 должно быть noteId=1&msdsId=3. Отказ Я не знаю, связано ли это с ошибкой XML, но это первое, что поражает меня так же неправильно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top