2009-11-26 3 views
3

J'ai une erreur étrange lors de l'appel de WebService/C# depuis javascript.Echec de la méthode de serveur 'methodname'

La méthode de serveur 'GetGoogleToken' a échoué. Pas de détails, pas de pile. Sur le serveur, je définis le point d'arrêt - tout fonctionne bien et je retends la chaîne (quoi de plus simple?)

Aussi, la méthode fonctionne très bien quand je l'appelle en utilisant l'environnement de test du navigateur.

Voici la méthode:

[WebMethod] 
public string GetGoogleToken(string login, string password) 
{ 
    try 
    { 
     string token = string.Empty; 
     if (!String.IsNullOrEmpty(login) && !String.IsNullOrEmpty(password)) 
     { 
      ContactsService service = new ContactsService("..."); 
      service.setUserCredentials(login, password); 
      token = service.QueryAuthenticationToken(); 
     } 

     return token; 
    } 
    catch (Exception ex) 
    { 
     // no errors happening on server side 
     throw new ApplicationException("Error in GetGoogleToken", ex); 
    } 
} 

Mes Attributs de classe:

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ToolboxItem(false)] 
[System.Web.Script.Services.ScriptService] 

mon javascript:

Namespace.WebServices.ContactsImport.GetGoogleToken(login, password, ImportGoogle.authenticated, OnAjaxRequest_Error); 

J'ai aussi remarqué, cette erreur se produit avant que le serveur résultat retourné. (par exemple j'ai un point d'arrêt)

Répondre

3

Cause du problème était très drôle - Intégrateur html mettre runat = "serveur" sur le bouton, qui générait cet appel Javascript. En conséquence, Microsoft javascript était en cours de rechargement de page, et il ne s'attendait pas à des résultats de services Web.

+1

Merci. J'ai eu un problème similaire. J'avais une entrée de type submit à la place du bouton, et sur Chrome, il faisait un postback. – bnieland

Questions connexes