2010-09-03 11 views
2

J'ai un fichier de service Web dans mon projet ayant une méthode Web qui est utilisée pour AutoCompleteExtender et qui fonctionne correctement lorsque je le débogue de VS. Mais quand je publie et héberge sur IIS, cela ne fonctionne pas correctement.AutoCompleteExtender ne fonctionne pas pour WebService hébergé sur IIS 7

Cependant, j'ai testé la méthode webservice directement en tapant l'URL et elle a donné la sortie désirée.

Est-ce que leur paramètre spécial doit être fait dans IIS pour le faire fonctionner ou toute propriété de AutoCompleteExtender doit être définie?

Répondre

0

Après une mise à niveau d'ASP.NET 3.5 vers 4.0, j'ai le même problème et je n'arrive pas à faire fonctionner l'extension. De Firefox et Firebug je recive un 500 Internal Server Error avec le message

System.InvalidOperationException: Format de demande est invalide: application/JSON; jeu de caractères = utf-8. à System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() à System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

Je l'ai testé avec les paramètres web.config suggérés par http://msdn.microsoft.com/en-us/library/bb763183.aspx mais la configuration recive les erreurs.

0

Essayez de changer l'ordre des gestionnaires (supprimez puis ajoutez). Dans cet exemple, j'ai supprimé tout sauf le gestionnaire AJAX/script.

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <handlers> 
    <remove name="WebServiceHandlerFactory-Integrated"/> 
    <remove name="WebServiceHandlerFactory-ISAPI-2.0"/> 
    <remove name="WebServiceHandlerFactory-ISAPI-2.0-64"/> 
    <remove name="WebServiceHandlerFactory-ISAPI-4.0_32bit"/> 
    <remove name="WebServiceHandlerFactory-ISAPI-4.0_64bit"/> 
    <!--<add name="WebServiceHandlerFactory-Integrated-4.0" ...</handlers> 
+0

Malheureusement, cela n'aide pas vraiment ... – Abel

0

Ce n'est pas le problème de IIS ou ath. C'est un bug en fait (je pense). Dans votre fonction dans webservice pour retourner le tableau de chaînes, vérifiez les noms des paramètres ou les arguments de la fonction. Le nom du paramètre string doit être prefixText et celui du champ int doit être count.

Et il doit y avoir ces deux paramètres pour vos fonctions dans le webservice.

comme celui-ci

[WebMethod] 
    public string[] getCountry(string prefixText, int count) 
    { 
     ...... 
.... 
return ... 
    } 
1

J'ai eu cette question que je me déplaçais un site de Cassini à IIS7.5. Après beaucoup de creuser a dû ajouter le suivant à web.config dans la section system.webServer. J'espère que cela aide.

<modules runAllManagedModulesForAllRequests="true"> 
     <remove name="ScriptModule" /> 
     <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </modules> 

<handlers> 
    <remove name="ScriptHandlerFactory"/> 
    <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
</handlers> 
-1

essayer ... ce

aller à Démarrer> Exécuter> inetmgr>

Dans les connexions pools d'applications de sidepane..select

sélectionnez le pool d'applications u hav attribué lors de la déployé ce projet dans iis (pour vérifier que allez dans les sites> dans le panneau des connexions ... et faites un clic droit sur le site que vous avez déployé et sélectionnez gérer le site> paramètres avancés puis en haut vous verrez le pool d'applications)

puis revenez et sélectionnez ce pool d'applications particulier dans les pools d'applications dans le volet de connexions faites un clic droit sur ce pool d'applications particulier et sélectionnez les paramètres avancés .. recherchez le modèle de processus dans celui et sélectionnez l'identité et naviguez à travers sélectionnez le système local ....... puis cliquez sur OK ... et en sortir ...

Je pense que cela va fonctionner .. il a travaillé pour moi .....