2010-06-06 227 views
0

我有一個web服務和一個webform。一個按鈕調用從pid讀取給定進程名稱的webservice。這在VS2008中工作正常,但是當我發佈我的項目時,我不知道名稱?我如何配置IIS以允許我這樣做?或者是否有其他方式,即wcf或wwf?IIS上的Web服務

編輯:

 
using System.Diagnostics; 

[WebMethod] 
     public string GetProcessName() 
     { 
      Process Process = Process.GetProcessById(1428); 
      string ProcessTitle = Process.MainWindowTitle; 
      return ProcessTitle; 
     } 

我用tasklist.exe/V獲得具有窗口標題進程的PID。

+0

上面添加的代碼。 – dany 2010-06-06 17:34:04

+0

請參閱窗口事件中的任何異常。可能存在授權問題。當你從VS運行代碼時,它是調用OS的用戶。但在IIS上,用戶將是ASPNET。 ASPNET可能未被授權運行特定的代碼。在這樣的代碼中,您可能會在安全或應用程序事件中遇到異常。 – Kangkan 2010-06-06 17:38:32

+0

如何啓用ASP.Net? – dany 2010-06-06 17:49:13

回答

0

鑑於你的代碼:

  • 你怎麼知道有一個與PID = 1428的過程?
  • 如果該過程不存在會怎麼樣?

如果你看看這行代碼:

Process process = Process.GetProcessById(1428); 

將返回NULL,然後你...... NULL搶.MainWindowTitle .....這就是保證到導致例外.....

using System.Diagnostics; 

[WebMethod] 
public string GetProcessName() 
{ 
    string processTitle = string.Empty; 

    Process process = Process.GetProcessById(1428); 

    if(process != null) 
    {  
     processTitle = process.MainWindowTitle; 
    } 

    return processTitle; 
} 

即使如此 - 再次:你怎麼知道ID = 1428的過程存在?

+0

我使用tasklist.exe/v來獲取具有窗口標題的進程的pid。我在代碼中提到了這個。 1428是我的Chrome瀏覽器(google.com),所以我確定它退出:p – dany 2010-06-06 18:18:15

0

我不敢相信,當我將我的項目部署到Abyss Web服務器時,它就像一個魅力。 感謝所有反正。