Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/10/2012, 14h02   #1
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Par défaut Erreur avec MSXML2.ServerXMLHTTP

Bonjour,

Voilà le code que j'essaie d'utiliser :

Code :
1
2
3
4
5
6
7
 
MyUrl = "http://www.google.fr"
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "GET", MyUrl, False
xmlhttp.send ""
Response.Write xmlhttp.responseText
Set xmlhttp = Nothing
Et je reçois cette erreur :
Citation:
msxml3.dll erreur '80072ee2'
The operation timed out
Quelqu'un voit où je me suis raté ?

Merci.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 16h12   #2
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Tu as cette erreur à la ligne 4 ?
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 16h16   #3
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Citation:
Envoyé par fredoche Voir le message
Tu as cette erreur à la ligne 4 ?
Non, c'est la ligne 5 => xmlhttp.send ""
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 16h35   #4
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
J'ai testé ton code, pas de souci

je chercherai bien du coté d'un problème réseau pour la machine qui exécute le script, problème de connexion à google depuis cette machine.
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 16h51   #5
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Citation:
Envoyé par fredoche Voir le message
J'ai testé ton code, pas de souci

je chercherai bien du coté d'un problème réseau pour la machine qui exécute le script, problème de connexion à google depuis cette machine.
Pourtant avec ce code asp, ça fonctionne
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<HTML>
<HEAD>
</HEAD>
<BODY>
 
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
 
function XMLHTTPButton_onclick() {
	var DataToSend = "id=1";
	var MyUrl = "http://www.google.fr";
 
	var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	xmlhttp.Open("GET",MyUrl,false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlhttp.send(DataToSend);
	//alert(xmlhttp.responseText);
	document.getElementById("Contenu").value = xmlhttp.responseText;
}
 
//-->
</SCRIPT>
 
<INPUT type="button" value="Submit XMLHTTP" id=XMLHTTPButton name=XMLHTTPButton 
LANGUAGE=javascript onclick="return XMLHTTPButton_onclick()">
 
<input type="text" name="Contenu" id="Contenu" size="500">
</BODY>
</HTML>
Si je lance ce vbs sur le serveur, ça fonctionne aussi
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
  Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
  ' Or, for version 3.0 of XMLHTTP, use:
'   Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
  ' Opens the connection to the remote server.
MyUrl = "http://www.caradisiac.com/service/itineraire/?iti-start-way=&iti-start-postal_code=85460&iti-start-town=&iti-start-country_code=France&iti-end-way=&iti-end-postal_code=85000&iti-end-town=&iti-end-country_code=France"
 
MyUrl = "http://www.google.fr"
  xmlhttp.Open "GET", MyUrl, False
   ', "population3\crosniep", "Vendee85"
  ' Actually Sends the request and returns the data:
 
	xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  xmlhttp.send("")
 
  msgbox xmlhttp.responseText
 Set xmlhttp = Nothing
Enfin, si j'exécute cette page asp, j'obtiens
msxml3.dll erreur '800c0005'
Erreur système : -2146697211.

Code :
1
2
3
4
5
6
7
8
 
MyUrl = "http://www.google.fr"
  Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "GET", MyUrl, False
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send ""
Response.Write xmlhttp.responseText
Set xmlhttp = Nothing
J'avoue que j'ai du mal à comprendre
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 17h16   #6
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
désolé de ne pouvoir t'aider

je passais simplement par là.

en tout cas pour moi le 1er ne fonctionne pas, sous FF, erreur sur activeXobject, sous IE9, erreur Permission refusée sur la ligne
Code :
xmlhttp.Open("GET",MyUrl,false);
le 3e code sous asp fonctionne, pas de soucis

essaye peut être de changer l'url requêtée dans un 1er temps, pour aller cher chercher du contenu local depuis ton serveur web et ce script asp.

Tes 3 tests utilisent différents contextes de sécurité, le 1er sur ton navigateur, le 2nd si tu lances un VBS sous ta session, même si c'est sur le serveur, le 3e doit surement utiliser l'impersonnalisation du type IUSR ou IWAM
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2012, 11h25   #7
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Faut-il donner des droits (ntfs ou iis) particuliers ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2012, 17h35   #8
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Je ne sais pas trop à vrai dire...

Ce que tu peux essayer de faire, c'est de changer les droits avec lesquels sont exécutés ton script ASP.

tu peux pour cela ajouter ce genre d'instructions au web.config du répertoire du fichier :
Code :
1
2
3
4
5
6
7
8
 
<system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
tu seras ensuite prompté pour saisir un compte valide sur le serveur.
ton script sera exécuté avec les droits de ce compte et non avec les droits de l'utilisateur anonyme.

c'est un test, déja tu verras si le problème est lié ou non à l'impersonnalisation du script

Si je suis pas clair, n'hésite pas
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 08h41   #9
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Ca me parait clair, mais je suis en ASP classique (pas .net).
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 10h10   #10
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Ce que je te propose est bien pour de l'asp classique, c'est juste des directives de configuration à appliquer sur IIS7, qui désactive l'accès anonyme, ce qui fait que tu dois te logguer avec un compte reconnu par le système, local, ou bien plus généralement par ta sécurité active directory.

tes scripts sur un serveur IIS sont exécutés avec des droits, qui quand l'accès anonyme est autorisé, sont les droits de IUSR_nomdupc en principe, et une fois que tu es loggué avec un compte, les droits de ce compte.
C'est ce qu'on appelle l'impersonnalisation il me semble.

Avec IIS6, il suffit de désactiver l'accès anonyme sur la ressource, et tu auras le même résultat.


Dis nous en plus sur ta config, ce sur quoi tu testes ton script peut être ?

Mais avant cela, plutôt que d'essayer de charger google.fr, essaie simplement de charger une page locale, un simple test.html dans le même rep que ton script ASP.

Voilà je t'emmène peut être loin, mais c'est les tests que je ferais, en commençant par le contenu local, car dans le même rep, tu as en principe les mêmes droits. Donc tu peux voir si ton problème est lié de près ou de loin à des droits.
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 10h48   #11
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
La config :

windows server 2003 / sp2
IIS6

Si j'essaie d'atteindre une simple page html du même répertoire, ça fonctionne.

Pour la méthode d'authentification, la connexion anonyme est bien cochée.
Par ailleurs, j'ai créé un utilisateur que j'ai mis dans le groupe Administrateurs. J'ai remplacé le compte IUSR_xxx par ce nouveau utilisateur pour la connexion anonyme. Je lui ai mis en plus controle total, mais ça ne passe toujours pas.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 11h23   #12
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Citation:
Envoyé par pc75 Voir le message

Pour la méthode d'authentification, la connexion anonyme est bien cochée.
Par ailleurs, j'ai créé un utilisateur que j'ai mis dans le groupe Administrateurs. J'ai remplacé le compte IUSR_xxx par ce nouveau utilisateur pour la connexion anonyme. Je lui ai mis en plus controle total, mais ça ne passe toujours pas.
Je présume que tu es conscient que c'est super "chaud" de faire comme ça, hors tests j'entends.

J'imagine que ça a marché avec un truc du genre :
maintenant avec
Code :
MyUrl = "http://localhost/chemin/test.html"
c'est à dire en forçant une connexion http, sur l'adresse locale correspondante

J'ai un IIS6/ win2003, je vais tester dessus pour voir
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 11h34   #13
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Non bah ça marche sur win2003/IIS6, que ce soit le 1er ou le 2e code que tu as posté
sans session, avec l'utilisateur anonyme, sur 2 machines différentes dans 2 réseaux totalement différents.

T'as pas un URLscan ou un firewall pointilleux avec une config bizarre des fois ?
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 12h03   #14
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
J'avais fait le test avec
Citation:
MyUrl = "http://MonServeur/MonSite/test.htm"
Le pare feu est désactivé sur le serveur. Par contre, je suis derrière un proxy.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 14h02   #15
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
J'ai répondu un peu vite.

Quand j'ai dit que ça fonctionnait avec
Citation:
MyUrl = "http://MonServeur/MonSite/test.htm"
en fait, ça m'affiche la page. Or je cherche à récupérer le code source (html) de cette page.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 14h29   #16
roro06
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 419
Détails du profil
Informations personnelles :
Âge : 43
Localisation : France

Informations forums :
Inscription : avril 2007
Messages : 1 419
Points : 1 872
Points : 1 872
Bonjour

Puisque tu fais un Response.Write, il est normal que cela s'affiche...

Essaie de jouer sur les timeouts de l'objet

Citation:
xmlHttp.setTimeouts x, y, z, t
doc

remarque :
Citation:
Pourtant avec ce code asp, ça fonctionne
tu nous présente un script client ... pas d'asp, donc
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 14h42   #17
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
J'ai essayé avec timeouts mais ça ne change rien.

PS : Il n'existe pas de méthode "miracle" pour récupérer le code source d'une page ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 15h51   #18
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Les miracles ça existe en info ?

le proxy est une piste
d'autant que ta requête http sur ton propre site et ta page test fonctionne

le proxy peut analyser ta requête http avant de l'exécuter lui-même

et dans une requête http provenant d'un navigateur, tu as un champ user-gent qui est renseigné. Par exemple pour le firefox que j'utilise sur ce forum

Code :
User-Agent	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1
et tu as d'autres champs utiles au dialogue http :
Code :
1
2
3
4
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding	gzip, deflate
Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Connection	keep-alive
je ne sais pas trop comment est formé ta requête http par ServerXMLHTTP
on peut assez aisément le visualiser en asp avec une page de test sur ton serveur, puisque ça marche en local.

Une autre hypothèse, c'est que ton serveur ne sait pas qu'il doit utiliser ton mandataire proxy

peux tu bypasser ce proxy ? si oui go...

sinon tu as des pistes pour configurer ton proxy ici :
http://stackoverflow.com/questions/1...rosoft-xmlhttp
si tu lis l'anglais, et sinon je peux t'aider

pour vérifier si ça vient du proxy, tu peux essayer de charger une autre page depuis une autre machine dans ton réseau local, avant le proxy. Si ça marche tu as des chances que le proxy soit en cause.

C'est un proxy transparent ou déclaré ?
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 16h56   #19
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 090
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 090
Points : 3 280
Points : 3 280
Bon, j'ai réussi autrement.
Avec mon utilisateur que j'ai mis dans le groupe administrateur et que j'ai déclaré comme utilisateur pour la connexion anonyme, j'ai utilisé ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    MyUrl = "http://www.google.fr"
    Set web = CreateObject("InternetExplorer.Application")
    web.Navigate MyUrl
    Do While web.Busy
    Loop
    On Error Resume Next
    Set doc = Nothing
    Do Until Not doc Is Nothing
        Set doc = web.Document
    Loop
    strWebPage = doc.body.OuterHTML
    web.Quit
    GetData = strWebPage
    Chaine = mid(GetData, 500, 50)
    Response.Write Chaine
Merci pour votre aide.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/10/2012, 17h26   #20
fredoche
Membre éprouvé
 
Inscription : décembre 2003
Messages : 381
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 381
Points : 469
Points : 469
Citation:
Envoyé par pc75 Voir le message
Bon, j'ai réussi autrement.
Avec mon utilisateur que j'ai mis dans le groupe administrateur et que j'ai déclaré comme utilisateur pour la connexion anonyme
Ca franchement c'est vraiment pas une bonne façon de faire

En passant par IE qui doit être configuré pour ton proxy, ça passe.

Mais serverxmlhttp correctement configuré est une bien meilleure solution
fredoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web