2009-06-16 7 views
1

Salut, je dois utiliser un service Web dans ma solution je une classe enveloppe statique accès au service Web commeservice web wrapper accès

public static class Authentication 
{ 
    public static bool VerifyPassword(int membershipID, string password) 
    { 
     PCIValidationResult result = CreatePciWebService().ValidatePassword(
       membershipID, password);    
     LoginValidationResult loginValidationResult = 
      (LoginValidationResult)Enum.ToObject(
       typeof(LoginValidationResult), result.ResultCode);   
     return true; 
    } 

    private static PCIWebService CreatePciWebService() 
    {   
     PCIWebService service = new PCIWebService(); 
     service.Url = KioskManagerConfiguration.PciServiceUrl; 
     return service; 
    } 

et j'appelle cette classe dans le code comme

Authentication.VerifyPassword(23,"testUser"); 

Le premier appel de code est réussi Et après le 2ème appel le code J'ai "l'opération a expiré" après 2-3 min. en attente ...

Comment appeler un service Web?

+0

Vouliez-vous dire retourner quelque chose basé sur loginValidationResult, plutôt que vrai à chaque fois? –

+0

Salut Marc, tout d'abord merci pour votre réponse rapide, le loginValidationResult n'est pas la partie du problème, vient sur le webService et vérifie le statut de l'utilisateur que je dois ajouter du code pour contrôler cette entreprise – dankyy1

Répondre

1

A part revenant toujours vrai, et peut-être utilisant using (si le service est IDisposable), je ne vois rien de mal évidemment.

Avez-vous essayé de le tracer avec un fiddler ou un wireshark pour voir ce qui se passe au niveau du transport?

Vous pouvez essayer d'ajouter using, mais si cela peut ranger les choses que je ne suis pas sûr qu'il va résoudre ce problème:

using(PCIWebService svc = CreatePciWebService()) { 
    PCIValidationResult result = svc.ValidatePassword(membershipID, password); 
    //...etc 
} 
Questions connexes