2011-08-16 42 views
0

Requiremnet - 點擊一個按鈕後,將在iis上創建一個站點。我傳遞一個名稱,這將成爲站點名稱iis代碼在本地環境中工作,但在iis上託管時無法運行

我創建了一個PowerShell腳本來做到這一點。使用process.start,我想打開一個powershell.exe並希望在其中執行我的代碼。 代碼...

 System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     Char[] chr = Password.ToCharArray(); 
     System.Security.SecureString pwd = new System.Security.SecureString(); 

     foreach (char c in chr) 
     { 
      pwd.AppendChar(c); 
     } 

     proc.StartInfo.FileName = "powershell.exe"; 

     //proc.StartInfo.Arguments = powershellScriptCode; //It contains powershell script  to  create a new website in iis 
     proc.StartInfo.UserName = UserName; //Comes from config file 
     proc.StartInfo.Password = pwd;  //Comes from config file 
     proc.StartInfo.Domain = Domain;  //Comes from config file 
     proc.StartInfo.RedirectStandardError = true; 
     proc.StartInfo.RedirectStandardOutput = true; 
     proc.StartInfo.UseShellExecute = false; 
     bool result = proc.Start(); 

當我運行在本地環境中,該代碼,它成功地運行,並創建了一個網站,但是當我運行在IIS上的代碼(託管)後,它不能創建網站在IIS.so我需要什麼類型的權限。

+0

是否安裝了Powershell.exe並可用?它是哪個Windows版本? – Olaf

+0

感謝您的回覆...是的PowerShell已經安裝..我使用PowerShell的1.0版本和Windows服務器2008 R2標準 –

+0

相同的代碼在控制檯應用程序和窗口窗口中成功運行..但不是在網站(當託管在IIS )。這就是爲什麼我認爲必須有一些權限問題.. –

回答

0

您需要更改應用程序池中的標識。轉到IIS管理器 - >應用程序池 - >高級設置 - >過程模型 - >身份。將其更改爲「本地系統」並重試(但請記住將其更改回來,除非您知道自己在做什麼,安全方面;如果有效,請使用所需的權限創建一個用戶帳戶)。

+0

一切除了PowerShell部分代碼不工作..仍然無法創建一個網站.... –

+0

嘗試將身份更改爲管理員,看看會發生什麼。或者你可以啓動另一個更簡單的PowerShell腳本? – Olaf

+0

一切除了PowerShell部分代碼不工作......仍然無法創建一個網站....當我在本地環境調試,然後我能夠創建網站使用powershell.Diagonistic.process是能夠打開powerscript窗口和我的網站創建成功,但當我託管在iis上,它不工作...當我調試我的託管網站時,我想出了該進程無法打開PowerShell窗口。 –

相關問題