首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#调用cmd执行命令重新启动应用程序池,但无法运行cscript.exe解决办法

2012-01-19 
C#调用cmd执行命令重新启动应用程序池,但无法运行cscript.exe代码如下:C# codeProcess p new Process()

C#调用cmd执行命令重新启动应用程序池,但无法运行cscript.exe
代码如下:

C# code
            Process p = new Process();            p.StartInfo.FileName = "cmd.exe";            // 这里是关键点,不用Shell启动/重定向输入/重定向输出/不显示窗口            p.StartInfo.UseShellExecute = false;            p.StartInfo.RedirectStandardInput = true;            p.StartInfo.RedirectStandardOutput = true;            p.StartInfo.RedirectStandardError = true;             p.StartInfo.CreateNoWindow = true;            p.StartInfo.WorkingDirectory = "f:\\f";            string command = "cscript.exe";            p.StartInfo.Arguments = "c:\\windows\\system32\\iisapp.vbs /a \"DefaultAppPool\" " + command;                p.Start();            //p.StandardInput.WriteLine("cscript.exe c:\\windows\\system32\\iisapp.vbs /a \"DefaultAppPool\"");              //p.StandardInput.WriteLine("exit");            //p.WaitForExit(60000);            string s = p.StandardOutput.ReadToEnd();// 得到cmd.exe的输出            p.Close();


请多多指教!

[解决办法]
up
[解决办法]
1、试试把你要执行的写个批处理文件再调用一下。
2、运行cmd /? 看看有哪些参数,应该会有帮助。

[解决办法]
有什么错误
[解决办法]
帮 顶
[解决办法]

C# code
        p.WaitForExit();        if (p.HasExited)        {            string s = p.StandardOutput.ReadToEnd();        }
[解决办法]
权限够吗?

[解决办法]
(1)你的程序池名对吗? DefaultAppPool
(2)你在2003 sp1下正常而在sp2下 报什么错?
[解决办法]
以前用的,SP2下不知能不能用

set WebAppPool = GetObject("IIS://LocalHost/w3svc/AppPools/DefaultAppPool")
WebAppPool.Stop
WebAppPool.Start

上面代码保存为VBS脚本文件即可.再用cscript.exe调用一下试试.
[解决办法]
up
[解决办法]
如果在aspnet里面的话,估计是权限问题
把这个相关的网页放到另一个有管理员权限的apppool里面(用localsystem比较方便)
[解决办法]
应该是找不到cscript文件路径
试试这个
BatchFile code
echo offif exist "%SystemRoot%\Microsoft.NET\Framework\v2.0.50727" goto netOld:DispErrorecho 您的机器上没有安装 .net FrameWork 2.0pausegoto LastEnd:netOldcd %SystemRoot%\Microsoft.NET\Framework\v2.0.50727echo 您的机器上安装了相应的.net FrameWork,可以运行本脚本,按任意键继续…………echo offpause%SystemRoot%\System32\Cscript %SystemRoot%\System32\iisapp.vbs /a "DefaultAppPool" :LastEndrem exit
[解决办法]
学习一下
[解决办法]
都是牛人啊。我只好闭嘴了。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
解决了吧?
[解决办法]
你打开一个cmd窗口直接执行看启动没启动
[解决办法]
顶!学习
------解决方案--------------------


学习+帮顶
[解决办法]
mark.
[解决办法]
学习
[解决办法]
想法一:
p.StartInfo.FileName = "cscript.exe";
p.StartInfo.Arguments = "/c c:\\windows\\system32\\iisapp.vbs /a \"DefaultAppPool\" ;
Process pr = Process.Start(p);
if (pr!=null)
{
......
pr.Dispose();

}

想法二:
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = “/c”command+ "(空一格)c:\\windows\\system32\\iisapp.vbs /a \"DefaultAppPool\" " ;
Process pr = Process.Start(p);
if (pr!=null)
{
......
pr.Dispose();

}


热点排行