Ошибка при попытке использовать TempPath в WebJob - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь загрузить файл во временную папку веб-задания Azure ...

 public static string DownloadLogo(string url)
    {
        var fileName = $"{Path.GetTempPath()}logo.png";

        using (var client = new WebClient())
        {
            client.DownloadFile(url, fileName);
        }
        return fileName;
    }

Я получаю следующую ошибку:

Exception: System.Net.WebException: Could not find a part of the path 'D:\local\Temp\jobs\continuous\BillingProcessor\t2argeef.l1b\public\logo.png'. ---> System.Net.WebException: Could not find a part of the path 'D:\local\Temp\jobs\continuous\BillingProcessor\t2argeef.l1b\public\logo.png'. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\local\Temp\jobs\continuous\BillingProcessor\t2argeef.l1b\public\logo.png'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
   at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
   --- End of inner exception stack trace ---
   at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
   at System.Net.FileWebRequest.GetResponseCallback(Object state)
   --- End of inner exception stack trace ---
   at System.Net.WebClient.DownloadFile(Uri address, String fileName)

В отдельной заметке:

  1. Я перешел в папку D: \ local \ Temp \ jobs \ непрерывный \ BillingProcessor \ t2argeef.l1b \, а общая папка отсутствует
  2. У меня этот код работает под другимРазвертывание webjob без проблем

1 Ответ

0 голосов
/ 04 декабря 2018

Я попробовал ваш код, и он работал нормально.Но мое имя файла D:\local\Temp\logo.png, оно отличается от вашего.

Поэтому я попытался изменить путь на {Path.GetTempPath()}t2argeef.l1b/public/logo.png, тогда он покажет ту же ошибку, что и ваша.Так что сейчас я уверен, что проблема в том, что папка с файлами не существует.

Способ решения проблемы - перейти к Kudu и создать папку с файлами, например * 1009.* рис показывает.Затем запустите webjob , все работает нормально.И это результат .

И я думаю, что ваша kudu среда TEMP была изменена, это вызвало ошибку каталога временных файловых папок.Чтобы вы могли проверить свою среду TEMP из Kudu console с помощью set или из среды Kudu page .

Если у вас все еще есть вопросы, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...