2011-05-14 89 views
2

我必須從我們的內部網站運行一個工具。用戶將從用戶界面提供的輸入很少,然後我想用用戶憑證運行該工具。當我從本地機器運行它時,我的代碼工作正常,但是當我將它部署到生產服務器並嘗試從該服務器執行它時,它不會啓動任何內容。未從生產Web服務器運行的應用程序

這是我的代碼,任何意見將不勝感激。

  System.Diagnostics.ProcessStartInfo PSI = new System.Diagnostics.ProcessStartInfo(@"D:\run.bat");    
      PSI.UserName = "username"; 
      PSI.Domain = "domain"; 
      System.Security.SecureString securePwd = new System.Security.SecureString(); 
      string password = "password"; 
      foreach (char c in password) 
      { 
       // Append the character to the password. 
       securePwd.AppendChar(c); 
      } 
      PSI.Password = securePwd; 
      PSI.UseShellExecute = false; 
      process.StartInfo = PSI; 
      PSI.Arguments = SiteId.Text + " " + WebServiceUrl.Text + " " +LogFile.Text; 
      process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      process.Start(); 
+0

這可能聽起來很愚蠢,但是你確定你已經在服務器上部署了'run.bat'(並且該服務器也有一個D:\驅動器)? – SirViver 2011-05-14 21:58:40

+2

還是權限? – 2011-05-14 22:01:03

+0

是的run.bat在該位置可用。當我登錄到該服務器後手動運行它時,它工作正常。 – 2011-05-14 22:02:50

回答

0

我想關閉這個線程,因爲我解決了從生產服務器運行應用程序的問題。但我面臨着使用特定用戶名&密碼運行該應用程序的問題。它總是以任何身份在apppool中設置。所以現在,如果我只用這條線在運行於應用程序池默認身份

Process.Start("notepad"); 

但是,如果我用這行代碼它甚至沒有在該服務器

  string password = "XXXXX"; 
      System.Security.SecureString securePwd = new System.Security.SecureString(); 
      foreach (char c in password) 
      { 
       // Append the character to the password. 
       securePwd.AppendChar(c); 
      } 
      Process.Start("notepad", "username", securePwd, "domain"); 

我開始記事本我會就此問一個單獨的問題。感謝所有回覆的人。

1

第一:

  • 檢查您的應用程序池(高級設置)的身份。
  • 將身份切換到「系統」並查看批處理文件是否從Web應用運行。

如果確實如此:

  • 更改身份回到網絡服務,
  • 確保您的批處理文件具有執行權限適用於用戶使用網絡服務(或者你選擇哪個身份)

如果沒有:

  • 嘗試使用您的代碼打開文件並在最後附加一些無害的文本。
  • 如果有效,您至少可以排除權限和網絡應用程序可見性問題。
+0

從昨天開始,我圍繞它做了大量的研究。我可以從asp.net網頁運行一個notepad.exe我已經完全刪除了上面的代碼並且只使用Process.Start(「notepad.exe」)這會啓動一個記事本,但是當我在任務管理器中檢查它時,進程啓動在網絡中服務用戶名稱。當我用批處理文件替換notpad.exe時,我看到了相同的觀察結果。但我的應用程序無法在網絡服務帳戶中運行。所以我試着用這行 Process.Start(「notepad.exe」,「username」,securePwd,「domain」)用特定的用戶名和密碼執行它並觀察它沒有啓動任何記事本進程。 – 2011-05-16 03:04:53

+0

我已經嘗試了這兩個應用程序池身份設置「網絡服務」和「應用程序池身份」,但沒有看到它執行。如果您對此有所瞭解,請提前致謝,並在此處發佈。 – 2011-05-16 03:05:04

相關問題