如何在asp.net应用程序运行Iisweb.vbs将命令
问题描述:
有人可以帮我在执行Iisweb.vbs将从中我想使用启动和停止在远程的IIS服务器的网站上的C#代码指令(IIS 6.0)。如何在asp.net应用程序运行Iisweb.vbs将命令
我已经尝试了其他选项,如使用带有SyytemManagement或WMI,但在所有情况下的代码工作正常本地IIS服务器,但远程服务器显示错误DirectorServises。我得到远程服务器的“访问被拒绝”错误
我已经得到了所有的服务器在同一个多米安和网络区域,并尝试用管理权限的用户帐户,但没有用于远程机器,所以试试使用IISWeb .VBS。
请注意,从我的开发机器我可以停下来,用这个Iisweb.vbs将没有任何问题的命令,当我从命令提示符下运行启动远程计算机上的网站。所以肯定没有许可问题。 代码我使用:
Process p = new Process();
p.StartInfo.FileName = "cscript.exe";
p.StartInfo.Arguments = "iisweb.vbs /stop w3svc/87257621 test /s servername /u userid /p password";
p.StartInfo.UseShellExecute = false;
p.Start();
p.WaitForExit();
int i= p.ExitCode;
令人惊讶的,我没有得到任何错误,我得到的返回码“0”,但无非是网站没有得到停止。
请帮我一把。
答
想通了这个问题,代码试图找出里面c:\program files\Visual Studio\
的Iisweb.vbs将文件.........,无法找到它了。因此,我修改了代码,专门查找位于C:\Windows\System32
位置的iisweb.vbs文件,现在它工作正常。
这里的代码在具有远程计算机IIS 6.0停止和启动一个网站的工作版本。
ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = @"C:\WINDOWS\system32\cscript.exe";
psi.Arguments = @"C:\WINDOWS\system32\iisweb.vbs /stop w3svc/1 test /s ServerName /u UserId /p Password";
psi.RedirectStandardOutput = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
System.Diagnostics.Process listFiles;
listFiles = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader myOutput = listFiles.StandardOutput;
listFiles.WaitForExit(2000);
if (listFiles.HasExited)
{
string output = myOutput.ReadToEnd();
//this.processResults.Text = output;
}