我要在某.aspx页面里面的一个button的单击事件里面运行一个简单的dos copy命令,现在遇到问题。
button的函数里面将会调用下面这个函数:
private void CallCmd(string argm) 

Process p = new Process();  
p.StartInfo.FileName = @"C:\WINDOWS\system32\cmd.exe"; 
p.StartInfo.UseShellExecute = false;  
p.StartInfo.RedirectStandardInput = true;  
p.StartInfo.RedirectStandardOutput = true;  
p.StartInfo.RedirectStandardError = true;  
p.StartInfo.CreateNoWindow = true;  
p.Start();  
p.StandardInput.WriteLine(argm);  
p.StandardInput.WriteLine("exit");  
p.StandardOutput.ReadToEnd();  
p.Close();  
}
程序运行的时候报错如下:
Exception Details: System.ComponentModel.Win32Exception: Access is denied出错行:Line 963: p.Start();  Win32Exception (0x80004005): Access is denied]
   System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) +1106
   System.Diagnostics.Process.Start() +85
   AutoCheckin.UserInterface.AddCheckin.CallCmd(String argm) in c:\inetpub\wwwroot\autocheckin\userinterface\addcheckin.aspx.cs:963
   AutoCheckin.UserInterface.AddCheckin.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\autocheckin\userinterface\addcheckin.aspx.cs:1153
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1281
现在比较郁闷的事情是,我已经将发布目录,cmd所在的目录"C:\WINDOWS\system32\cmd.exe"的安全权限里面都加入了用户ASPNET和用户NETWORK SERVEICE,他们都有执行权限,而且用户ASPNET也被我加入了Administrator组,可是还是报错,无权运行Process.Start()!!!哪位知道如何解决啊?

解决方案 »

  1.   

    再cmd.exe这个文件上面加上权限就可以了
      

  2.   

    另外2003系统不建议采用network services 用户
    建议重新自己建立一个用户比如test,在iis新建pool(用test用户运行)
    ,不要用原来的default pool
      

  3.   

    1。先查看网络和IIS设置。比如IP设定,域设定,IIS等等。IIS Web Site下边还有一项Web Service Extends。在这个项目里有许多权限设定。
    2。IE权限设定。Windows 2003 Server Internet Explore的安全级别默认设置比较高。很多ActiveX Object等等都设置为了禁用。
    3。a web application 里dll是否能加载完备。举个例子,Windows 2003 Server系统里是不带msvcp71.dll和msvcr71.dll的。Debug版的Web Application还需要msvcp71d.dll和msvcr71d.dll。要不在XP下能够运行的Application,在Win2003下就可能不好用。
    4。Win2003的Web Application还与其所在的Application Pool中的设定有关,不过好像跟你列出的问题没有多少关系。我觉得还是网络和权限设定问题。