2010-06-06 94 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服务器时,它就像一个魅力。 感谢所有反正。