Я получаю массу сообщений об этих ошибках, когда пользователь пытается загрузить pdf из моего веб-приложения:
System.ArgumentException: Object must be an array of primitives.
Parameter name: src
at System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
at System.Web.StaticFileHandler.ProcessRangeRequest(HttpContext context, String physicalPath, Int64 fileLength, String rangeHeader, String etag, DateTime lastModified)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Я уже посмотрел на http://support.microsoft.com/kb/2026272 и попробовал пункт 3 (в этом случае другие предложения не являются реально осуществимыми решениями), но это не решает проблему.
Другое предложение, которое я видел в другом месте, заключалось в том, чтобы добавить следующее к методу Application_PostRequestHandlerExecute в Global.asax:
HttpApplication app = (HttpApplication)sender;
if(app.Context.Request.RawUrl.Contains(".pdf"))
app.Response.AppendHeader("Accept-Ranges", "none");
Но опять же, похоже, это не решает проблему.
Любые мысли приветствуются ...