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

Signaler
Messages postés
5
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
4 mai 2010
-
Messages postés
20
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
2 mai 2005
-
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

Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
5
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___)
Messages postés
5
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
4 mai 2010

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
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
5
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___)
Messages postés
5
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
4 mai 2010

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 :)
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
5
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___)
Messages postés
5
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
4 mai 2010

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
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
5
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___)
Messages postés
1
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
15 avril 2004

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 ?
Messages postés
20
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
2 mai 2005

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