2015-09-11 2 views
0

Мое приложение MVC принимает файл excel и использует этот файл для создания элементов списка в SharePoint. Это работает во всех браузерах, отличных от IE (включая Opera ..). Мой код начинается следующим образом:Сохранение файла ASP.NET MVC (SharePoint PHA) не работает в IE

public ActionResult ParseExcel() //RedirectResult 
     { 
      try 
      { 

       if (Request.Files.Count == 1) 
       { 
        var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); 

        using (var clientContext = spContext.CreateUserClientContextForSPHost()) 
        { 
         if (clientContext != null) 
         { 
          try 
          { 
           if (Request.Files[0].FileName.EndsWith(".xlsx")) 
           { 
            //1. Temporarily store Excel file for processing 
            string folder = Path.Combine(Path.GetTempPath(), "HNZ"); 
            if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); 
            string localExcelPath = Path.Combine(folder, Request.Files[0].FileName); 
            Request.Files[0].SaveAs(localExcelPath); 

Я 99% уверен, что отказ происходит в данный момент, так как никакого прогресса в остальной части кода не происходит. У меня не было этой проблемы в моей среде разработки, и, к сожалению, я не могу отладить проблему в pre-prod.

Обновление: из того, что я читал, я могу добавить что-то вроде HttpContext.Response.CacheControl = Request.Browser.Browser == "IE" ? "private" : "no-cache" в мой код, чтобы учесть IE. Неужели это все для этого? Если да, то где-то конкретное мне нужно добавить это или не важно, если это происходит до «Сохранить»? Я попытаюсь установить щедрость по этому вопросу, если я смогу до того, как проект будет отменен.

ответ

0

Я считаю, что это может быть проблемой с методом «SaveAs», потому что IE, кажется, хранит localExcelPath как полный путь («MyFolder/Blah/Test.xlsx») в моей среде prod, где все остальные браузеры I ' Мы использовали его как «Test.xlsx». Это не произошло в моей тестовой среде, так как не было задействованного сервера.

Редактировать: Это была проблема.

Смежные вопросы