Запустите команду netuse из лазурного веб-задания C # - PullRequest
0 голосов
/ 23 октября 2018

Я написал консольное приложение C #, которое подключается к общему ресурсу Azure с помощью команды net, а затем выполняет некоторые задачи над файлами.Ниже приведен код, который будет подключаться к общей папке с помощью процесса. Он работает нормально при запуске из локальной системы в качестве консольного приложения.

string netUseCommand = applicationDbContext.AccountConfigurations.FirstOrDefault().NetUseCommand;//Get net use command from database
// Use ProcessStartInfo class
ProcessStartInfo startInfo = new ProcessStartInfo
{
   CreateNoWindow = false,
   UseShellExecute = false,
   Verb = "runas",
   FileName = "cmd.exe",
   WindowStyle = ProcessWindowStyle.Hidden,
   Arguments = @"/c " + netUseCommand + " & " + " Z: && " + "//command to perform file operations"
 };
try
{
  // Start the process with the info we specified.
  // Call WaitForExit and then the using statement will close.
  using (Process exeProcess = Process.Start(startInfo))
  {
     exeProcess.WaitForExit();  
  }
}
catch (Exception ex)
{
   // Log error.
   Console.Out.WriteLine("Error Occurred:  Error:" + ex.Message);
   throw ex;
}

Когда я развернул это консольное приложение в качестве веб-задания в Azure, оно начало давать сбойво время выполнения команды netuse с приведенной ниже ошибкой

[10/23/2018 04:12:45 > 7b7826: ERR ] Access is denied.

я обнаружил, что Azure Powershell не поддерживается в веб-задании.Это та же проблема с процессом (cmd.exe).Пожалуйста, предоставьте решение или любые другие альтернативные решения.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Поскольку WebApp - это песочница .Не поддерживается использование команды netuse для сопоставления драйверов для управления хранилищем общих файлов в веб-приложении Azure.

Если мы хотим управлять хранилищем файлов в веб-приложении Azure, как отметил Мюррей Фоккрофт, мы могли бы использовать файловая служба rest api .Для этого мы также используем библиотеку хранилища Azure.Мы могли бы получить демонстрационный код C # с библиотекой хранилища Azure из официального документа Azure .

Если вы все еще хотите сопоставить диски для работы с хранилищем файлов, вы можете использовать службу Azure VM вместо Azure WebApp.

0 голосов
/ 23 октября 2018

Вам необходимо использовать API REST файловой службы

Например, из документов , чтобы вывести список файлов в папке / каталоге, используйте:

https://myaccount.file.core.windows.net/myshare/mydirectorypath?restype=directory&comp=list

Затем найдите библиотеку C # для выполнения необходимых операций с файлом или напишите свою собственную.

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