2017-02-07 4 views

ответ

3

По вашему описанию, для локально:

Мы могли бы использовать следующий код, чтобы получить корневой путь WebJob проекта.

rootPath = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())); 

Для Azure:

D:\home общий для нас, и мы могли прочитать или записать файл на этом пути. Более подробную информацию о доступе к домашнему каталогу см. В разделе document. Структура файла на Azure, пожалуйста, обратитесь к другому document. Мы также можем просмотреть его с помощью инструмента Kudu (http://yourwebsite.scm.azurewebsites.net/).

В качестве удобства для наших клиентов песочница реализует динамическую символическую ссылку в режиме ядра, которая отображает d: \ home в домашний каталог клиента. Это делается для устранения необходимости того, чтобы клиент продолжал ссылаться на свой собственный сетевой общий путь при доступе к сайту. Независимо от того, где сайт работает, или сколько сайтов работает на виртуальной машине, каждый из них может получить доступ к своей домашней директории, используя

rootPath = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot" 

Если нет переменного окружения «Home» мы могли бы использовать следующий код, чтобы сделать это ,

string path; 
if (Environment.GetEnvironmentVariable("HOME")!=null) 
{ 
    path = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot" + @"\testfilename.txt"; 
} 
else 
{ 
    path = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + @"\testfilename.txt"; 
    } 

Ниже приведены детали испытаний шаги:

1.Create проект WebJob и test.text тестовый файл и папку в проекте

enter image description here

2.As Я использую таймер триггер в WebJob, поэтому мне нужно добавить config.UseTimers() в program.cs

enter image description here

3. Добавить следующие коды в файл Function.cs

public static void ProcessQueueMessage([TimerTrigger("00:00:03")] TimerInfo timerInfo, TextWriter log) 
     { 
      string instance = Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID"); 
      string newMsg = $"WEBSITE_INSTANCE_ID:{instance}, timestamp:{DateTime.Now}"; 
      string path; 
      if (Environment.GetEnvironmentVariable("HOME")!=null) 
      { 
       path = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot" + @"\test.txt"; 
      } 
      else 
      { 
       path = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + @"\test.txt"; 
      } 
      string template = File.ReadAllText(path); 
      log.WriteLine($"NewMsge: {newMsg},file Content:{template}"); 
      Console.WriteLine($"NewMsge: {newMsg},file Content:{template}"); 
     } 

4. Проверьте его на локальном компьютере.

enter image description here

5.After развернуть на Azure и получить журнал от Azure WebJob приборной панели.

enter image description here

6.After развернуть на Azure и получить журнал от Azure WebJob приборной панели.

enter image description here