Webservice pb d'accès aux fichier se trouvant sur un autre serveur

maisonx2000 Messages postés 5 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 mai 2010 - 30 juil. 2003 à 12:34
Freddddy Messages postés 20 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 mai 2005 - 15 sept. 2004 à 12:45
Voila je veux developper un webservice qui me retourne un fichier texte se trouvant sur un autre serveur
j'ai tous les droit d'accès. Voici le code

Dim sFileName As String = "\\beduetaf\c$\aspilog.txt"
Dim fs As New System.IO.FileStream(sFileName, IO.FileMode.Open, IO.FileAccess.Read)

Dim sR As New System.IO.StreamReader(fs)
Dim sM As String = sR.ReadLine
Dim sp As String

Do Until sM = ""
'Debug.WriteLine(sM)
'oResultat.AddUtilisateur(sM)
sp += sM + vbCrLf

sM = sR.ReadLine
Loop
sR.Close()
fs.Close()
Return sp

quand j'execute le webservice il me retourne cette erreur
pourtant ayant les droits d'admin je ne vois pas pourquoi il refuse d'accéder à un ficher sur un autre serveur :

System.IO.IOException: Échec d'ouverture de session : nom d'utilisateur inconnu ou mot de passe incorrect.

at System.IO.__Error.WinIOError(Int32 errorCode, String str)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at gipc.Service1.lecturefichier()
at gipc.Service1.CheckEssbase()

9 réponses

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
30 juil. 2003 à 16:45
Ceci est normal.
Le compte d'exécution du framework est un utilisateur local du serveur WEB : ASPNET
Celui-ci n'est pas connu sur le serveur de fichiers que tu souhaites lire.

Il faut faire exécuter le framework par un utilisateur du Domaine par exemple (ayant les droits suffisants sur les 2 serveurs) ou laisser accessible le répertoire que tu souhaites lire a tout le monde (un peu dangereux).

Quoi qu'il en soit evite les acces sur les shares system (c$, d$, ...) ce sont des share d'administration et non de lecture normale.

Créeun share directement sur ton répertoire ou se trouvent les fichiers et lis celui-ci avec le WS.

Romelard Fabrice (Alias F___)
0
maisonx2000 Messages postés 5 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 mai 2010
30 juil. 2003 à 17:11
Merci pour la réponse mais je débute sur .net

Pourtant je suis administrateur.
J'ai déjà partagé le repertoire avec comme accès tout le monde ainsi qu'au niveau des sécurités et rien à faire j'ai toujours le même message d'erreur :(

quand je teste mon webservice, je suis en admin donc je devrais pouvoir accéder au autre serveur sans problème.

Le code que j'ai fourni fonctionne très bien sur une appli vb.net normal sauf dans une aplli webservice :(

bizarre, bizarre

si tu as autre chose à me proposer n'hésite pas :)

encore merci
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
30 juil. 2003 à 18:13
Apparement tu n'as pas lu ce que je viens de t'écrire mais t'es empressé de repondre sans réfléchir.

Un webservice est une application accéssible sur un serveur WEB, de ce fait le compte utilisé pour exécuter le framework au profit du serveur WEB n'a strictement rien avoir avec ton compte perso de la machine.

Je t'ai dit plus haut que le compte utilisé était ASPNET (local) et non TOI.

Pour ce qui est du mode serveur de fichiers regarde cet article :
- http://www.c2i.fr/code.aspx?IDCode=509

Romelard Fabrice (Alias F___)
0
maisonx2000 Messages postés 5 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 mai 2010
30 juil. 2003 à 19:58
Ok j'ai compris :) mais alors est-ce qu'il existe un moyen d'autoriser le serveur qui contient le webservice à récuperer des informations se trouvant sur un autre serveur sans passer par une base de donnée ??

merci pour tes explications :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
30 juil. 2003 à 21:04
Encore une fois, tu n'as pas lu la réponse.

J'ai déja répondu à ta question dans le :
- http://www.aspfr.com/forum.aspx?article=8756

Romelard Fabrice (Alias F___)
0
maisonx2000 Messages postés 5 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 mai 2010
30 juil. 2003 à 21:24
Si si mais pour moi c'est inconcevable :) Je n'arrive pas à concevoir qu'un service web ne puisse pas accéder à d'autres serveurs. Dans mon entreprise on a une dizaine de serveur et j'aimerais bien que ce service web puisse récupérer des données à gauche et à droite pas forcement sur le serveur d'origine :)

En local la routine fonctionne bien quand j'attaque le disk C ou D par contre sur un lecteur monté d'un autre serveur ça me fait le même message d'erreur (encore plus inconcevable pour moi...)

Bon en tout cas merci de ta patience :)

Nicolas
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
30 juil. 2003 à 21:45
Je ne vois pas ce qui est inconcevable dans le fait qu'un serveur WEB ne puisse pas allez explorer d'autres serveurs (pour des raisons évidentes de sécurité) dans sa configuration d'origine (exécution avec le compte ASPNET local à la machine).

Romelard Fabrice (Alias F___)
0
cs_keva Messages postés 1 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 15 avril 2004
15 avril 2004 à 15:46
Fabrice,
Dans ta première réponse, je te cite:
"Il faut faire exécuter le framework par un utilisateur du Domaine par exemple (ayant les droits suffisants sur les 2 serveurs)..."
Comment fait-on ?
0
Freddddy Messages postés 20 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 2 mai 2005
15 sept. 2004 à 12:45
Il faut que tu modifies le fichier "machine.config" situé dans le répertoire d'installation du .NET frameword\Config. (Chez, c'est : C:\WINNT\Microsoft.NET\Framework\v1.1.4322\CONFIG)

Bon courage

Fred
PS : Si ça suffis pas comme réponse, voici ma source: en-us 842789 http://support.microsoft.com/default.aspx?scid=kb;en-us;842789
0
Rejoignez-nous