0
我試圖設置一個自我託管的OWIN webservice來啓動可執行進程。你可以從Owin自己託管的Web API restfull服務調用一個可執行文件
我用來調用executbal作爲一個簡單的測試控制檯應用程序的代碼不會從我自己託管的服務實例調用它。我沒有看到一個例外,我沒有看到任何類型的日誌。不知道什麼可能是錯的。我開始認爲這是不允許的。
[Route("startApplication/{application}/{parameters}/{workingDirectory}")]
public IEnumerable<String> startApplication(string application, string parameters, string workingDirectory) {
logger.logInfo("startApplication restfully called");
RunResults runResults = new RunResults {
...
};
application = new Uri(application).LocalPath;
try {
if (File.Exists(application)) {
using (Process proc = new Process()) {
logger.logInfo(String.Format("Attempting to start application: {0}", application));
proc.StartInfo.FileName = application;
proc.StartInfo.Arguments = parameters;
proc.StartInfo.WorkingDirectory = workingDirectory;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.OutputDataReceived += (o, e) => runResults.Output.Append(e.Data).Append(Environment.NewLine);
proc.ErrorDataReceived += (o, e) => runResults.Output.Append(e.Data).Append(Environment.NewLine);
proc.Start();
proc.BeginOutputReadLine();
proc.BeginErrorReadLine();
proc.WaitForExit();
runResults.ExitCode = proc.ExitCode;
logger.logInfo(String.Format("Application has started: {0}", application));
}
}
else {
...
}
}
catch (Exception e) {
...
}
return new string[] { "Hello", "world", "jive", "turkeys" };
}
我可能沒有做正確的事情。 我知道你在想什麼......這是不安全的。這是一個內部應用程序,只能由正確的安全組中的人訪問。如果你不在,你不能調用這個控制器。此外,它將受到我稱之爲三角認證的保護。其中的細節除了這篇文章的重點之外。有任何想法嗎?
任何思想先生?這似乎有點模糊了一個話題?也許沒有答案? – SoftwareSavant