Я написал службу Windows, которая отлично работает. Это вызов (по командной строке) через ChatServer.exe {argument}
, где {argument}
является ключевой работой, такой как install
, uninstall
, start
и stop
.Начать служебную мысль ASP.net Page
Программа, для которой эта служба требует административных привилегий (поскольку она сама устанавливает/удаляет). Поэтому, если я начинаю cmd
с администратором "D:\folder\chatserver.exe install"
, например, он устанавливает службу как следует.
Ну, моя проблема в том, что на моем сайте ASP.net я написал функцию (ниже), чтобы начать процесс, но я получаю исключение "740" ("the software required privilege elevation")
, как если бы я отмечал аргумент «AsAdmin» моей функции «true», , я понимаю, что "UseShellExecute"
не может быть правдой в качестве исключения.
public static int RunProcess(string ApplicationPath, string Parameters = "", bool AsAdmin = false)
{
try
{
global::System.Diagnostics.ProcessStartInfo startInfo = new global::System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = AsAdmin;
if (AsAdmin) { startInfo.Verb = "runas"; }
startInfo.WorkingDirectory = global::System.IO.Path.GetDirectoryName(ApplicationPath);
startInfo.FileName = ApplicationPath;
if (!string.IsNullOrEmpty(Parameters)) { startInfo.Arguments = Parameters; }
startInfo.ErrorDialog = false;
global::System.Diagnostics.Process process = global::System.Diagnostics.Process.Start(startInfo);
process.WaitForExit();
return process.ExitCode;
}
catch (global::System.ComponentModel.Win32Exception ex) { return ex.NativeErrorCode; }
catch { return -1; }
}
Что мне делать?
thansk ted! невероятная вещь, которую я ЗНАЛ, но если забыл! как я мог? – SammuelMiranda
попробовал, и это имело большой смысл, но я до сих пор получаю «Win32Exception», «Запрошенная операция требует повышения» – SammuelMiranda
@SammuelMiranda - см. Мое редактирование 'myProcess.Verb =" runas ";' – Ted