[Résolu][WebServices&Ajax]problème de connexion juste avec ajax

problème de connexion juste avec ajax [Résolu][WebServices&Ajax] - C#/.NET managed - Programmation

Marsh Posté le 01-11-2015 à 18:36:07    

salut
 
il doit peut être y avoir un problème de sécurité
j'arrive à faire tout ce que je veux en local
je met les webservices sur mon site et là je n'y accède plus en ajax
par contre je peux y accéder en c# depuis mon local sur mon site
quand je met l'url dans chrome il m'affiche bien la page classique sur webServices/getStatsFromImport.asmx
j'ai cherché pas mal de temps là, j'ai pas trouvé grand chose :(
à part ça https://msdn.microsoft.com/fr-fr/li [...] .110).aspx
mais je me plante dans le web.config à mon avis, j'y comprend pas grand chose ;)
pourtant je n'ai rien fait de spécial pour que ça fonctionne en local
 
des idées ?
 
[edit]

un petit résumé s'il y a quelqu'un qui passe sur le post avec les mêmes problèmes
 - il n'y a pas besoin de mettre dans le web.config toutes les lignes que j'ai mis dans le 3ème post
 - pas besoin non plus d'entourer les méthodes c# webservice comme indiqué au point 4
 - à partir du point 5, vérifier tout de suite les retours du webservice par ajax (j'ai perdu beaucoup de temps avant d'avoir l'idée de faire ça) :
     - avec prototype.js, c'est dans le genre (il passe dans le onComplete même s'il y a failure) :

Code :
  1. <textarea cols="150" rows="40" id="txaWSResult"></textarea>
  2. <script language="javaScript">
  3. new Ajax.Request('<%=urlSite%>/webServices/getStatsFromImport.asmx/test',
  4. {
  5.   method: 'post',
  6.   parameters: { _recordId: _record_Id },
  7.   onCreate: function ()
  8.   {alert('onCreate');},
  9.   onComplete: function (response)
  10.   {
  11.    alert('complete -> ' + response.status);
  12.    alert('complete.text -> ' + response.responseText);
  13.    $('txaWSResult').value = response.responseText;
  14.   },
  15.   onSuccess: function (transport)
  16.   {
  17.    var response = transport.responseText || "no response text";
  18.    $('txaWSResult').value = transport.responseText;
  19.    alert('onSuccess');
  20.   },
  21.   onFailure: function () { alert('failure'); }
  22. });
  23. </script>



     - pour éviter les status 0 pour crossdomain interdits, j'ai fait ça pour urlSite -> urlSite = "http://" + Request.Url.Host.ToString();
     - et enfin en cas d'erreur 500, si l'erreur est "Request format is unrecognized for URL unexpectedly ending in",
     il faut avoir ça dans le web.config (dans la partie <system.web> ) :

Code :
  1. <webServices>
  2.    <protocols>
  3.     <add name="HttpSoap" />
  4.     <add name="HttpGet" />
  5.     <add name="HttpPost" />
  6.    </protocols>
  7.   </webServices>


 

voilou ;)


Message édité par bill_clinton le 02-11-2015 à 15:05:42
Reply

Marsh Posté le 01-11-2015 à 18:36:07   

Reply

Marsh Posté le 01-11-2015 à 18:40:32    

pourtant si on regarde ici  
https://msdn.microsoft.com/fr-fr/li [...] s.85).aspx
au paragraphe "L'élément webServices par défaut suivant n'est pas configuré explicitement "
ils disent que tout est déjà mis par défaut
 
ah j'oubliais, je suis en .net 4.0 pour le pool

Reply

Marsh Posté le 01-11-2015 à 19:30:45    

avant j'avais pratiquement rien dans mon web.config
maintenant j'ai rajouté tout ça : (je l'ai pris d'ici : http://forums.asp.net/t/1916404.as [...] EB+CONFIG)

Code :
  1. <system.web>
  2.   <httpRuntime maxRequestLength="2097151" executionTimeout="3600" />
  3.   <compilation debug="true" urlLinePragmas="true" />
  4.   <customErrors mode="Off" />
  5.   <sessionState cookieless="UseCookies" mode="InProc" timeout="3600" useHostingIdentity="true" />
  6.   <httpHandlers>
  7.    <remove verb="*" path="*.asmx"/>
  8.    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  9.    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  10.    <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  11.   </httpHandlers>
  12. </system.web>
  13. <system.webServer>
  14.   <security>
  15.    <requestFiltering>
  16.     <requestLimits maxQueryString="100000000" maxAllowedContentLength="500000000" />
  17.    </requestFiltering>
  18.   </security>
  19.   <handlers>
  20.    <remove name="WebServiceHandlerFactory-Integrated"/>
  21.    <remove name="ScriptHandlerFactory"/>
  22.    <remove name="ScriptHandlerFactoryAppServices"/>
  23.    <remove name="ScriptResource"/>
  24.    <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"/>
  25.    <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  26.    <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  27.   </handlers>
  28. </system.webServer>
  29. <system.serviceModel>
  30.   <behaviors>
  31.    <serviceBehaviors>
  32.     <behavior name="ManagementServiceBehaviour">
  33.      <serviceDebug includeExceptionDetailInFaults="true" />
  34.      <serviceMetadata httpGetEnabled="true" />
  35.      <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
  36.     </behavior>
  37.     <behavior name="">
  38.      <serviceMetadata httpGetEnabled="true" />
  39.      <serviceDebug includeExceptionDetailInFaults="false" />
  40.     </behavior>
  41.    </serviceBehaviors>
  42.   </behaviors>
  43.   <bindings>
  44.    <basicHttpBinding>
  45.     <binding name="BasicHttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="01:50:00" openTimeout="01:50:00" sendTimeout="01:50:00" receiveTimeout="01:50:00" >
  46.      <readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
  47.     </binding>
  48.    </basicHttpBinding>
  49.   </bindings>
  50.   <services>
  51.    <service behaviorConfiguration="ManagementServiceBehaviour" name="BusinessLogic.Facade.EntityFacade.Services.ManagementService">
  52.     <endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding" contract="BusinessLogic.Facade.EntityFacade.Contracts.IManagementService">
  53.      <identity>
  54.       <dns value="" />
  55.      </identity>
  56.     </endpoint>
  57.    </service>
  58.   </services>
  59. </system.serviceModel>


 
mais ça n'a pas servi à grand chose :(


Message édité par bill_clinton le 01-11-2015 à 19:34:58
Reply

Marsh Posté le 01-11-2015 à 20:15:09    

je viens de faire ce qui est indiqué sur cette page https://msdn.microsoft.com/fr-fr/li [...] .110).aspx :
c'est à dire entourer mes méthodes avec
[ SoapDocumentMethod(Action="http://www.contoso.com/Time" )]

Reply

Marsh Posté le 01-11-2015 à 21:11:29    

bon
il faut que je m'oriente là dessus je pense :
http://stackoverflow.com/questions [...] ms-xmlhttp
j'ai un response.status de 0 avec ajax

Reply

Marsh Posté le 01-11-2015 à 21:53:14    

chrome m'avait transformé mon url de www.domaine.com à domaine.com
d'où le status à 0, on ne peut pas faire de crossdomain request
mais là maintenant j'ai un status à 500 :(

Reply

Marsh Posté le 01-11-2015 à 22:46:15    

j'ai mon erreur !!
"Request format is unrecognized for URL unexpectedly ending in '/test'."
 
pourtant ça fonctionne très bien en local ...
 
[edit]
ça fonctionne !!!!!!!!!!!!! ;);;;) :bounce: :bounce: :bounce:  
 
j'ai ajouté ça dans le web.config :
  <webServices>
   <protocols>
    <add name="HttpSoap" />
    <add name="HttpGet" />
    <add name="HttpPost" />
   </protocols>
  </webServices>
 
dans  <system.web>


Message édité par bill_clinton le 01-11-2015 à 22:54:54
Reply

Marsh Posté le 03-11-2015 à 02:55:42    

je vois déjà les puristes avec mon textarea à 150 / 40
mais bon, on debug ou on ne debug pas ;)


---------------
vente système facility management http://facilitymanagement.over-blo [...] eraux.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed