Ссылка на объект не установлена на экземпляр в p.start()
I am using the below code to invoke exe which is there in the server. On p.start() ,console will open and close in 2 sec only. no exception is logging. exe is not getting executed.sometime i get "Object reference not set to an instance". what is the issue here?
MessageBox.Show("Excel Formatting started"); // Console.WriteLine("Formatting started " + DateTime.Now); Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = str_Automate_ExecleFormatExePath; p.StartInfo.Arguments = '"' + strb_FilesList.ToString() + '"'; p.Start(); p.WaitForExit(); MessageBox.Show("Formatting completed");
Что я уже пробовал:
Тот же самый код прекрасно работает на моей локальной машине, когда exe и UI находятся на локальной машине.
когда я помещаю exe на сервер и пытаюсь вызвать его из локального пользовательского интерфейса, консоль открывается и закрывается без выполнения exe и без регистрации исполнений.
Dave Kreskowiak
Это веб-приложение (ASP.NET)?
Richard Deeming
Если это веб-приложение или служба Windows, Office interop не будет работать:
Рекомендации по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.
Если вы просто запускаете исполняемый файл из общего сетевого ресурса, он будет работать на вашем компьютере, а не на сервере. Вам нужно будет установить Office на компьютере, который запускает исполняемый файл, и ваша учетная запись пользователя должна будет иметь соответствующие разрешения на общий ресурс и любые пути, которые использует исполняемый файл.