Uzaktaki bir makinede bir işlemi durdurmaya çalışıyorum. Ama hata alıyorum. Neyi yanlış yapıyorum ve bu işi nasıl yapabilirim?Uzak makinedeki işlemi sonlandırın
Kodum:
var iu = new ImpersonateUser();
try
{
iu.Impersonate(Domain, _userName, _pass);
foreach (var process in Process.GetProcessesByName("notepad", "RemoteMachine"))
{
string processPath = pathToExe; //Is set as constant (and is correct)
process.Kill();
Thread.Sleep(3000);
Process.Start(processPath);
}
}
catch (Exception ex)
{
lblStatus.Text = ex.ToString();
}
finally
{
iu.Undo();
}
Sadece ImpersonateUser netleştirmek için, benim doğru kullanıcı hakları olan uzaktan makineye giriş yapar. Yani sorun orada değil. Hata ayıkladığımda ve işlem nesnesini kontrol ettiğimde, bu durumda not defteri için doğru işlem kimliğini buluyorum. Yani bağlantı iyi çalışıyor. Ben sürecini öldürmeye çalışırken Ama bu hatayı alıyorum:
System.NotSupportedException: Feature is not supported for remote machines. at System.Diagnostics.Process.EnsureState
. Yöntem yalnızca yerel bilgisayarda çalışan işlemler için kullanılabilir.] (Http://msdn.microsoft.com/en-us/library/system.diagnostics.process.kill%28v=vs.110%29.aspx) – JoelC
Duplicate - http://stackoverflow.com/questions/348112/kill-a-process-on-a-remote-machine-in-c-sharp?rq=1 – vapcguy