По каким возможным причинам выполнение cmd.exe из приложения .NET может привести к исключению 0xE0434352? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть консольное приложение .net (C #), которое запускается при запуске через кнопку «Пуск» в VS2017, а также при непосредственном запуске файла .exe.Однако при выполнении через планировщик заданий Windows я получаю неопределенную ошибку: 0xE0434352.

Я обнаружил, что ошибка является результатом выполнения этого метода:

internal static class Lib
{
    internal static async Task<String> ExecuteCmd (string txt, string cli = "cmd.exe", string args = "")
    {
        using ( Process cmd = new Process
        {
            StartInfo = new ProcessStartInfo()
            {
                FileName = cli,
                Arguments = args,
                RedirectStandardInput = true,
                RedirectStandardOutput = true,
                CreateNoWindow = false,
                UseShellExecute = false,
            }
        } )
        {
            cmd.Start();
            await cmd.StandardInput.WriteLineAsync(txt);
            await cmd.StandardInput.FlushAsync();
            cmd.StandardInput.Close();
            cmd.WaitForExit();
            return await cmd.StandardOutput.ReadToEndAsync();
        }
    }
}

// Then that method is called from the Main method like so:
public static async Task Main (string[] args)
{
    ExecuteCmd($"echo Complete! >> myFile.log");
}

Что такоепричина этого?Исключения, которые я получаю (из средства просмотра событий):

Ошибка приложения

Application: myapp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
   at myapp.App+<Main>d__0.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at myapp.App.<Main>(System.String[])

Ошибка структуры

Faulting application name: myapp.exe, version: 1.0.0.0, time stamp: 0x5b0d3a3e
Faulting module name: KERNELBASE.dll, version: 10.0.16299.402, time stamp: 0x81d25214
Exception code: 0xe0434352
Fault offset: 0x00103f12
Faulting process id: 0x51d4
Faulting application start time: 0x01d3f752fb93dfdb
Faulting application path: path\to\myapp.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: c15aa1dc-fb36-49df-a37c-5866116c39d7
Faulting package full name: 
Faulting package-relative application ID: 

============== РЕДАКТИРОВАТЬ ================

Во время выполнения я получаю файл JSON из сопоставленногосетевой диск:

IConfiguration jsonConfig = new ConfigurationBuilder()
    .AddJsonFile("X:\configs", optional: false, reloadOnChange: false)
    .Build();

Я обнаружил, что удаление этого решает по крайней мере одну проблему.хотя могут быть и другие

1 Ответ

0 голосов
/ 29 мая 2018

«Планировщик заданий Windows»

Бьюсь об заклад, это будет поле «Начать с», оно будет пустым или неправильным.Поместите папку exe в поле Start In и заключите ее в двойные кавычки."C: / YesEven / Дорожки / Как / Это /"

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