2011-12-21 33 views
0

我有一個運行的這一個Web服務:在C#中的appcmd代碼?

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服務在服務器上運行它,它會失敗。

我可以在純C#代碼中實現與appcmd相同的功能嗎?

編輯

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

我覺得你應該向我們展示更多詳細的「失敗」 :) – 2011-12-21 03:07:03

+0

我不知道它爲什麼失敗。當我可以進行調試時,它是完美的。但是,當我遠程運行它(當我無法調試它)時,它失敗。 – aron 2011-12-21 03:07:56

+0

既然你知道它失敗了,你必須得到一些錯誤信息或其他東西。 – 2011-12-21 03:09:35

回答

0

貌似可以。查看this示例代碼。

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\" 
    });