웹 폼에서 Windows 폼을 여는 실행 파일을 실행 중입니다. Visual Studio에서 winform 프로그램은 메서드를 실행 한 다음 Windows 양식을 올바르게 닫고 프로그램을 종료합니다. 그러나 실행 파일과 동일한 파일을 실행하면 윈도우가 열린 상태로 유지됩니다. 이 실행 프로세스가 여전히 SmartSheetAPI.exe로 실행 중임을 알 수 있습니다. 내가 속성에서 확인할 때C#의 프로세스를 닫을 수 없습니다
파일의 이름은 "SmartSheetAPI.exe"입니다. 이 프로세스를 작업 관리자에서 끝내면 Windows 양식이 종료되므로 문제가 있다는 것을 알 수 있습니다. 그러나, 프로세스를 죽일 webform에서 아래 코드를 사용하여 시도했지만 다시 작동하지 않습니다.
Process process = new Process();
process.StartInfo.FileName = @"P:\Visual Studio 2013\Projects\Smartsheet\SmartsheetAPI\obj\Debug\SmartSheetAPI.exe";
process.Start();
foreach (var processes in Process.GetProcessesByName("SmartSheetAPI.exe"))
{
process.Kill();
}
누구든지이 문제를 종료하는 방법을 알고 있습니까? 말하자면 Visual Studio의 SmartSheetAPI 프로그램에서 제대로 작동하지만 실행 파일을 종료하지는 않습니다. 방법을 실행하면이 프로세스를 종료해야합니다.
편집 : 닫히지 않은 프로세스는 vshost.exe이므로 내 애플리케이션이 어떤 이유로 닫히지 않습니다 (즉, Windows 양식이 열린 상태로 유지됨). 내가 process.kill()하면 모든 것이 필요에 따라 종료된다. 그러나 문제는 그 파일의 실행 파일을 실행하면 Windows 양식이 열려 있지만 vshost.exe를 닫아서 찾을 수 없다는 것입니다. 나는 그것을 사용하지 못했고 현재 닫히지 않을 프로세스는 현재 실행중인 프로그램 인 SmartSheetAPI.exe 파일입니다. 나는이 프로그램에서 나가기를 원하지만 아무 것도 시도하지 않는다.
프로세스가 중단되면 프로세스를 종료하는 대신 문제를 정렬하는 것이 좋습니다. –
파일 잠금 장치 조심하십시오. 파일에 대한 정보를 표시 할 수있는 모든 탐색기 창을 닫습니다. 탐색기 자체는 파일을 잠그지 않아야하지만 OS의 일부 항목이 파일을 잠글 수 있습니다. Sysinternals에는 프로세스 탐색기라는 프로그램이있어 파일 이름을 검색하여 잠긴 프로세스를 확인할 수 있습니다. –