2010-06-06 5 views
0

J'ai un webservice et un formulaire Web. Un bouton appelle le service web qui lit un nom de processus donné depuis pid. Cela fonctionne bien dans VS2008 mais quand je publie mon projet, je ne comprends pas le nom? Comment puis-je configurer IIS pour me permettre de le faire? ou existe-t-il un autre moyen, à savoir wcf ou wwf?Webservice sur IIS

Edit:

 
using System.Diagnostics; 

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

je tasklist.exe/v pour obtenir le pid d'un processus qui a un titre de la fenêtre.

+0

code ajouté ci-dessus. – dany

+0

Voir pour toute exception dans les événements Windows. Il pourrait y avoir un problème d'autorisation. Lorsque vous exécutez le code à partir de VS, c'est l'utilisateur sur le système d'exploitation qui appelle. Mais sur IIS l'utilisateur sera ASPNET. ASPNET peut ne pas être autorisé à exécuter le code particulier. Dans un tel code, vous pouvez obtenir l'exception dans les événements de sécurité ou d'application. – Kangkan

+0

Comment puis-je activer ASP.Net? – dany

Répondre

0

votre code Étant donné:

  • Comment savez-vous qu'il ya un processus avec PID = 1428 ?? Que se passe-t-il si ce processus n'existe pas?

Si vous cochez cette ligne de code:

Process process = Process.GetProcessById(1428); 

retournera NULL, puis vous prenez la .MainWindowTitle de ...... NULL ..... c'est garanti à provoquer une exception .....

using System.Diagnostics; 

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

    Process process = Process.GetProcessById(1428); 

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

    return processTitle; 
} 

Et même ainsi - encore une fois: comment savez-vous un processus avec ID = 1428 existe ??

+0

J'ai utilisé tasklist.exe/v pour obtenir le pid d'un processus qui a un titre de fenêtre. Je l'ai mentionné sous le code. 1428 était mon navigateur chrome (google.com) donc je suis sûr qu'il se termine: p – dany

0

Je n'arrive pas à croire que lorsque j'ai déployé mon projet sur le serveur web Abyss, ça fonctionne comme un charme. Merci à tous de toute façon.