2011-10-26 1 views
1

J'ai un simple appel jquery qui essaie de renvoyer du code XML à partir d'un service ASMX. Cet appel fonctionne localement, mais après le déploiement du service et de la page avec l'appel .ajax(), je ne fais que "tourner" l'appel de service Web.ASMX avec jquery fonctionne localement, mais pas lorsqu'il est déployé sur IIS 6.0

J'ai vérifié que le compte d'utilisateur ASPNET possède les droits appropriés pour accéder au dossier où réside l'ASMX. En outre, j'ai ajouté les lignes suivantes au web.config avant de déployer sur le serveur:

<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
    </protocols> 
</webServices> 

Quand je soulève cette question dans Firebug pour inspecter l'appel que je vois les en-têtes, mais le poste et la réponse est rien, c'est juste "tournant". Je n'ai jamais eu d'erreur en retour, je n'ai que des rotations incessantes.

La page html et le service Web sont sur le même domaine (dans le même dossier même).

Merci. MISE À JOUR: J'ai maintenant lu l'article d'Encosia sur l'ajout de [webmethod] à des méthodes statiques sur des pages .aspx (par exemple default.aspx) (link). Je peux maintenant appeler ces méthodes localement sans problème, mais lorsque je déploie sur IIS 6.0 je n'obtiens aucune réponse. Cela a sorti l'appel .asmx de l'équation et il me reste quelque chose de plus fondamental. De quelle section de configuration ai-je besoin pour permettre à une opération $ .ajax() de fonctionner sur une page locale?

Répondre

1

votre version mon vary

<system.web> 
    <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpHandlers> 
</system.web> 

Vous pourriez aussi faire comparer des fichiers sur local et le serveur déployé comme il y a d'autres parties du web.config qui sont nécessaires.

EDIT: il suffit de vérifier, mais avez-vous envelopper votre addition et permettre JSON (hypothèse que vous utilisez):

<system.web.extensions> 
    <scripting> 
     <scriptResourceHandler enableCaching="true" enableCompression="true" /> 
     <webServices> 
      <jsonSerialization maxJsonLength="5000000"/> 
     </webServices> 
    </scripting> 
</system.web.extensions> 

<system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
</system.web> 
+0

Cela a fonctionné pour moi, merci! –

Questions connexes