0

我有一个运行的网络服务是这样的:

 var Proc = new Process();
                Proc.StartInfo.FileName = CredentialBatFile;
                Proc.StartInfo.Arguments = WebSiteName + " " + Apppool_Username 
                                                    + " " + Apppool_Password;
                Proc.Start();

bat文件有:

C:\Windows\system32\inetsrv\appcmd.exe set site "%1" 
              -virtualDirectoryDefaults.userName:%2 
              -virtualDirectoryDefaults.password:%3

如果我在本地主机(在服务器上)运行它工作正常。但是,如果我从 Web 服务在服务器上运行它,它会失败。

appcmd我可以实现与纯 C# 代码相同的功能吗?

编辑

Exception: Unknown error (0xfffffffe) StackTrace: at    
System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
4

2 回答 2

1

我通过直接从 c# 调用 appcmd 做了类似的事情。将我的案例改编为原始问题,代码将是:

System.Diagnostics.Process.Start(
    new System.Diagnostics.ProcessStartInfo
    {
        Arguments = "set site \""+ WebSiteName + "\" -virtualDirectoryDefaults.userName:"+ Apppool_Username + " -virtualDirectoryDefaults.password:"+ Apppool_Password,
        FileName = "appcmd.exe",
        WorkingDirectory = @"c:\windows\system32\inetsrv\"
    });
于 2013-04-11T12:23:43.330 回答
1

看起来你可以。查看示例代码。

于 2011-12-21T05:55:54.943 回答