none
Pourquoi le WebService appelé par Ajax ne marche pas RRS feed

  • Discussion générale

  • Pour qu’un service Web puisse être accessible à partir de script, il doit être un service Web .asmx dont la classe de service Web est qualifiée avec l'attribut ScriptServiceAttribute. Pour pouvoir appeler des méthodes individuelles à partir de script, elles doivent être qualifiées avec l'attribut WebMethodAttribute. Par exemple,

     

    [ScriptService]
    public class SimpleWebService : System.Web.Services.WebService
    {
       [WebMethod]
       public string EchoInput(String input)
       {
         // le code de la methode
       }
    }

     

    Ajoutez une reference dans ScriptManager au WebService existant :

    <asp:ScriptManager runat="server" ID="scriptManager">
     <Services>
      <asp:ServiceReference
        path="~/WebServices/SimpleWebService.asmx" />  
     </Services> 
    </asp:ScriptManager>

     

    Assurez-vous que le chemin est correct.

    Vous devez configurer l'application Web pour prendre en charge l’appel des services Web de script. Dans le fichier Web.config de l'application, vous devez enregistrer le gestionnaire HTTP ScriptHandlerFactory, qui traite les appels faites de script vers des services Web .asmx. Pour les appels de service Web qui ne sont pas émis de script ASP.NET AJAX, le gestionnaire délègue l'appel pour le gestionnaire par défaut. L'exemple suivant illustre l'élément Web.config pour ajouter le gestionnaire.  Par exemple,

     

    <system.web>
     <httpHandlers>
       <remove verb="*" path="*.asmx"/>
       <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/>
     </httpHandlers>
    <system.web>

     

    Si votre Service Web est appelée par un contrôle d’AJAX Control Toolkit, assurez-vous que les paramètres soient strictement identiques avec sa définition.  Par exemple, si vous utilisez AutoComplete, vous pouvez faire comme le ci-dessous :

     

    [WebMethod]
    public string[] GetCompletionList(string prefixText, int count, string contextKey){ } or 
    [WebMethod]
    public string[] GetCompletionList(string prefixText, int count){ }

     

     

    Pour plusieurs tips&tricks sur ASP.NET, visitez la page Foire aux Questions – ASP.NET

     

     


    Appel à contribution ! http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/bd974e0e-5519-4122-b8fc-3b998207c34f
    vendredi 14 mai 2010 10:11
    Modérateur