Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WSS : Dev WebPart, pb d'accès fichiers

2 réponses
Avatar
nimp0001
Bonjour,

Avant tout, je developpe avec Visual Studio en C# sur une config standard de
WinServ 2003 avec Windows Sharepoint Services.

Je suis en plein developpement d'une WebPart. Je suis parti sur la base de
la webpart SmartPart qui permet d'integrer des contrôles utilisateurs .acsx
facilement.
Ca marche très bien, j'encaspule à tout va mes composant les uns dans les
autres, tout s'affiche parfaitement. Là où ça se complique sérieusement,
c'est pour l'accès à des fichiers de données.
Mon application à besoin de lire et écrire dans des fichiers XML. Ils sont
posés dans un ensemble de repertoires qui sont tous accessible directement
via plusieurs Répertoires Virtuels ISS. Ces répertoires virtuels sont tous
marqué comme Exclu dans la config de WSS.
J'ai systématiquement des erreurs de tpe FileNotFoundException lorsque
j'essai de lire ces fichiers XML (). Quel chemin dois-je indiquer ? Ai-je
oublié un point important de configuration ??? Que faire ? Si qqun peut
m'aider, ça serait super.

Merci d'avance,

Cdt,

Nimp 0001

Exemple de code :

using System.IO;
using System.Xml;
string fileName = "./monvirtualdrive_IIS_pas_gere_dans_wss/config_bdd.xml";
throw new FileNotFoundException();
XmlTextReader tr = new XmlTextReader(fileName);
while (tr.Read())
{
if(tr.NodeType == XmlNodeType.Text) Label2.Text=tr.Value;
}

2 réponses

Avatar
AnthonyB
Je te conseille d'utiliser le chemin physique :
server.mappath("/monvirtualdrive_IIS_pas_gere_dans_wss/config_bdd.xml");

De plus, tu avais mis "./" au lieu de "/" dans ton code !!!

AnthonyB

"nimp0001" a écrit :

Bonjour,

Avant tout, je developpe avec Visual Studio en C# sur une config standard de
WinServ 2003 avec Windows Sharepoint Services.

Je suis en plein developpement d'une WebPart. Je suis parti sur la base de
la webpart SmartPart qui permet d'integrer des contrôles utilisateurs .acsx
facilement.
Ca marche très bien, j'encaspule à tout va mes composant les uns dans les
autres, tout s'affiche parfaitement. Là où ça se complique sérieusement,
c'est pour l'accès à des fichiers de données.
Mon application à besoin de lire et écrire dans des fichiers XML. Ils sont
posés dans un ensemble de repertoires qui sont tous accessible directement
via plusieurs Répertoires Virtuels ISS. Ces répertoires virtuels sont tous
marqué comme Exclu dans la config de WSS.
J'ai systématiquement des erreurs de tpe FileNotFoundException lorsque
j'essai de lire ces fichiers XML (). Quel chemin dois-je indiquer ? Ai-je
oublié un point important de configuration ??? Que faire ? Si qqun peut
m'aider, ça serait super.

Merci d'avance,

Cdt,

Nimp 0001

Exemple de code :

using System.IO;
using System.Xml;
string fileName = "./monvirtualdrive_IIS_pas_gere_dans_wss/config_bdd.xml";
throw new FileNotFoundException();
XmlTextReader tr = new XmlTextReader(fileName);
while (tr.Read())
{
if(tr.NodeType == XmlNodeType.Text) Label2.Text=tr.Value;
}


Avatar
nimp0001
Bonjour,

Merci pour cette réponse, j'avance pas à pas du coup...
J'arrive à plus de réultat maintenant.
En gros, je fais d'abord un test sur l'existence du fichier (avec
Server.MapPath) :

FileInfo test = new FileInfo(Server.MapPath("/maressource/config_bdd.xml"));
Label1.Text=test.Exists.ToString();

Réponse écrite sur mon label : "true", donc il trouve bien le fichier.







Ensuite, juste en dessous dans mon code, je fais mon reader XML (et je
souhaite écrire une valeur, un noeud, un truc, n'importe quoi pourvu que ça
vienne du xml) :

XmlTextReader tr = new
XmlTextReader(Server.MapPath("/maressource/config_bdd.xml"));
while (tr.Read())
{
if (tr.NodeType == XmlNodeType.Text)
{
Label1.Text=tr.Value;
}
}

Et là c'est l'accident, il ne trouve systématiquement pas mon fichier qu'il
a pourtant trouvé 2 seconde plus tôt (avant le server.mappath, il ne le
trouvait pas du tout au 2 fois, donc on avance !).

Alors, si qqun à une nouvelle suggestion, je résume, on trouve bien le
fichier lors du premier test, on ne le trouve plus 2 lignes plus bas...

Merci d'avance,

Nimp0001