无法使用托管在iss上的asp.net Web应用程序从远程服务器获取结果

时间:2014-04-10 11:31:12

标签: c# asp.net windows iis

我想在远程服务器命令行上运行一些命令,并将结果返回到我的本地服务器上。为此,我在我的C#代码中使用psexec.exe。 当我使用我的控制台应用程序执行此操作时,它工作正常,我可以在我的日志文件中看到命令的结果在远程服务器的命令行中运行。

System.Diagnostics.Process p = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo sInfo = new System.Diagnostics.ProcessStartInfo();
string results;
sInfo.UseShellExecute = false;
sInfo.RedirectStandardOutput = true;
sInfo.Arguments = "/C \"psexec.exe \\\\" + servername + " -u " + user + " -p " + pasword + " " + command1 + "\"";
p.StartInfo = sInfo;
p.Start();
results = p.StandardOutput.ReadToEnd();

但是当我为iis服务器上托管的Web应用程序实现相同的逻辑时,它不起作用。我已经尝试了下面的事情:

1)在我的Web应用程序中实现上述逻辑,该逻辑应该在点击按钮等事件时运行。它不起作用。

2)我尝试使用实际服务器名称psword和其他详细信息创建一个内容与sinfo.argument相同的.bat文件。当我手动运行此bat文件时,它运行正常并在控制台中显示结果。但是,当我用我的Web应用程序触发该bat文件时,它无法正常工作。

3)我在bat文件中给出了我的控制台应用程序exe的位置,然后当我运行.bat文件时,它再次给出了完美的结果。但是当我用web应用程序触发.bat文件时,我又失败了。

4)我尝试使用我的Web应用程序直接触发我的consoleapplication.exe,但它不起作用。

所以我怀疑使用iis上托管的Web应用程序从远程服务器获取结果存在一些问题。我认为使用Web应用程序运行时代码不会以错误代码0退出。但是同样适用于控制台应用程序。

0 个答案:

没有答案