2016-04-22 3 views
0

я использую ABCpdf,ABCpdf HttpContent.Create FileNotFoundException в ASP.NET MVC контекст, но файл существует

Иногда я получаю в производстве FileNotFoundException после создания HttpMultipartMimeForm с использованием пути по HttpContent.Create( Methode

Основная часть время этот код работает хорошо

формата PDF является Creat в контексте, где

  1. ASP.NET сайт а называется
  2. Вызов веб-сайта B для создания PDF-файла
  3. Веб-сайт B называет URL-адрес B для HTML-метода PDF abcpdf.
  4. После предыдущего запроса на В конце, на сайте отправить файл на сервер C помощью HttpClient HttpMultipartMimeForm и исключения будет бросить иногда, но когда я смотрю на сервере файл существует

А и В на том же машины и обмена одними и теми же каталогами.

Я предположил, что файл не закончен для записи на диск, когда я пытаюсь получить доступ к нему. Но как решить это?

Спасибо.

1. Сервер

using (HttpClient pdfClient = new HttpClient("http://" + ConfigurationManager.AppSettings["xxx"])) 
{ 
    using (HttpResponseMessage message = pdfClient.Get(UrlDictionary.callxxx(xxxID, xxxID))) 
    { 
     message.EnsureStatusIsSuccessful(); 
     message.Content.ReadAsStream(); 
    } 
} 

2. Сервер B

theDoc.Save(HostingEnvironment.ApplicationPhysicalPath + "/xxx/" + ".pdf"); 
theDoc.Clear(); 

3. Сервер

HttpMultipartMimeForm request = new HttpMultipartMimeForm(); 

    FileInfo info = new FileInfo(pathFile); 
    HttpFormFile file = new HttpFormFile(); 
    file.Content = **HttpContent.Create(info, "multipart/form-data")**; (Exception FileNotFoundException) 
    file.FileName = info.Name; 
    file.Name = "file"; 


    request.Files.Add(file); 
    request.Add("id", id); 

    using (HttpResponseMessage response = client.Post(
     string.Format("/xxx/{0}", id), 
     request.CreateHttpContent())) 
    { 
     ExceptionIfBadRequest(response); 
     Contrat contrat = (Contrat)FromXml(response.Content.ReadAsString(), typeof(Contrat)); 
     return contrat; 
    } 
+0

Ваше исключение очень ясно, файл в каталоге, который вы ищете в – jamiedanq

+0

Но после того, как я смотрю на производственном сервере файл существует – ArDumez

+0

отладки кода, ступая в него и проверить, если путь к каталогу даже прямо – jamiedanq

ответ

0

Проверьте права доступа в файле PDF и в каталоге, проверьте, что в файле нет какой-либо «зоны» информации, прикрепленной к нему.

+0

Да, но этот код работает большую часть времени, так что это не проблема разрешения, я думаю ... – ArDumez

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