Move directory security

Le
Yannis
Hi!

When I try to move a directory (with sub-directories inside) thrue my site,
I have an IOException : Access SourcePath is denied !
If it doesn't contain any sub-directories, it's work.
The owner of my directory is not ASPNet.
The owner and ASPNet users have R/W access in all the directories of my site.

But if I try to do the same thing with a directory outside of my site (for
example C:Temp), it's work perfectly.

Anybody have an idea of my problem?
Thanks.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yannis
Le #12182821
Bonjour,

Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais l'avoir
envoyé aux US.
Bref, je reformule ma question en français :

Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
parti des répertoires de mon site, j'ai une IOException "L'accès à Src est
refusé".
Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full control.

Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.

Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site (par
exemple, dans C:Temp), ça marche aussi !

Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?

Quelqu'un aurait une idée ?

Merci,
Yannis.
Patrice
Le #12182811
"Full control" ou "R/W" comme dans le message original ? Notamment pour
déplacer il faut avoir le droit de supprimer la source.

Essaie par exemple d'écrire le code qui permet de supprimer dossier par
dossier pour voir sur quel dossier cela coince ou utiliser un outil comme
filemon pour voir quel est le fichier qui coince (www.sysinternals.com).

Attention aussi, si le fichier vient d'être utilisé sur le site, il est
possible qu'il soit verrouillé (ou par exemple si un fichier vient d'être
traité on a pu oublier de le fermer).

Un bon candidat est une interférence avec ASP.NET qui surveille également la
structure des dossiers pour pouvoir rédémarrer en cas de changement d'un
web.config...

Voir si il ne serait pas possible de mettre ces fichiers en dehors du site
web (par exemple via un répertoire virtuel).

Bonne chance

--
Patrice

"Yannis"
Bonjour,

Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
l'avoir
envoyé aux US.
Bref, je reformule ma question en français :

Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
parti des répertoires de mon site, j'ai une IOException "L'accès à Src est
refusé".
Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
control.

Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.

Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site
(par
exemple, dans C:Temp), ça marche aussi !

Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?

Quelqu'un aurait une idée ?

Merci,
Yannis.


Yannis
Le #12182801
Merci pour ces éléments.

Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
J'ai fait quelques essais :
- En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
supprime n'importe quel de ces répertoires (ils ont ASPNet comme propriétaire)
- En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
propriétaire est Yannis) :
-- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
-- J'arrive à déplacer Tutu, puis Titi, ...
-- J'arrive à supprimer Tutu (par contre il faut fermer la solution VS.Net
pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
refusé sur Tutu car je pense qu'il doit être vérouillé)
-- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) => Le
répertoire n'est pas vide !

Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés !
Est-ce un bug de la classe Directory ?

Merci.

--
Yannis

"Patrice" wrote:

"Full control" ou "R/W" comme dans le message original ? Notamment pour
déplacer il faut avoir le droit de supprimer la source.

Essaie par exemple d'écrire le code qui permet de supprimer dossier par
dossier pour voir sur quel dossier cela coince ou utiliser un outil comme
filemon pour voir quel est le fichier qui coince (www.sysinternals.com).

Attention aussi, si le fichier vient d'être utilisé sur le site, il est
possible qu'il soit verrouillé (ou par exemple si un fichier vient d'être
traité on a pu oublier de le fermer).

Un bon candidat est une interférence avec ASP.NET qui surveille également la
structure des dossiers pour pouvoir rédémarrer en cas de changement d'un
web.config...

Voir si il ne serait pas possible de mettre ces fichiers en dehors du site
web (par exemple via un répertoire virtuel).

Bonne chance

--
Patrice

"Yannis"
> Bonjour,
>
> Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
> l'avoir
> envoyé aux US.
> Bref, je reformule ma question en français :
>
> Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
> Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
> parti des répertoires de mon site, j'ai une IOException "L'accès à Src est
> refusé".
> Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
> control.
>
> Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>
> Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site
> (par
> exemple, dans C:Temp), ça marche aussi !
>
> Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>
> Quelqu'un aurait une idée ?
>
> Merci,
> Yannis.





Patrice
Le #12182791
Je ne pense pas que cela soit un bug.

..Titi ne me plait pas. Quel est le chemin courant pour une application Web
? Utilise un chemin absolu pour commencer pour être sûr que le dossier soit
bien le bon. En plus si le dossier est ouvert dans VS.NET cela me choque pas
trop que l'on ne puisse pas le supprimer.

Expliquer le but peut aussi susciter de nouvelles façons de traiter le
problème (par exemple il serait possible de faire une page permettant
d'accéder à des fichiers en dehors de la structure du site web si ce
déplacement a pour but de mettre à disposition ou pas des fichiers sur le
site web).

Essaie peut-être de faire une maquette réduite à sa plus simple expression
qui montre ce problème.


---
Patrice

"Yannis"
Merci pour ces éléments.

Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
J'ai fait quelques essais :
- En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
supprime n'importe quel de ces répertoires (ils ont ASPNet comme
propriétaire)
- En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
propriétaire est Yannis) :
-- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
-- J'arrive à déplacer Tutu, puis Titi, ...
-- J'arrive à supprimer Tutu (par contre il faut fermer la solution VS.Net
pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
refusé sur Tutu car je pense qu'il doit être vérouillé)
-- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) => Le
répertoire n'est pas vide !

Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés !
Est-ce un bug de la classe Directory ?

Merci.

--
Yannis

"Patrice" wrote:

"Full control" ou "R/W" comme dans le message original ? Notamment pour
déplacer il faut avoir le droit de supprimer la source.

Essaie par exemple d'écrire le code qui permet de supprimer dossier par
dossier pour voir sur quel dossier cela coince ou utiliser un outil comme
filemon pour voir quel est le fichier qui coince (www.sysinternals.com).

Attention aussi, si le fichier vient d'être utilisé sur le site, il est
possible qu'il soit verrouillé (ou par exemple si un fichier vient d'être
traité on a pu oublier de le fermer).

Un bon candidat est une interférence avec ASP.NET qui surveille également
la
structure des dossiers pour pouvoir rédémarrer en cas de changement d'un
web.config...

Voir si il ne serait pas possible de mettre ces fichiers en dehors du
site
web (par exemple via un répertoire virtuel).

Bonne chance

--
Patrice

"Yannis" news:

> Bonjour,
>
> Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
> l'avoir
> envoyé aux US.
> Bref, je reformule ma question en français :
>
> Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
> Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
> parti des répertoires de mon site, j'ai une IOException "L'accès à Src
> est
> refusé".
> Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
> control.
>
> Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>
> Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site
> (par
> exemple, dans C:Temp), ça marche aussi !
>
> Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>
> Quelqu'un aurait une idée ?
>
> Merci,
> Yannis.







Yannis
Le #12182781
Hello!

En fait, j'ai mis ...Titi pour ne pas mettre le chemin complet dans le
mail, mais dans le code, il s'agit bien du chemin complet (C:...Titi).

En fait, pour reproduire c'est ultra simple :
- Nouveau Site web
- Création des répertoires "Toto/Titi/Tutu" à la racine du site web
- Dans le Page_Load de Default.aspx :



"Patrice" wrote:

Je ne pense pas que cela soit un bug.

...Titi ne me plait pas. Quel est le chemin courant pour une application Web
? Utilise un chemin absolu pour commencer pour être sûr que le dossier soit
bien le bon. En plus si le dossier est ouvert dans VS.NET cela me choque pas
trop que l'on ne puisse pas le supprimer.

Expliquer le but peut aussi susciter de nouvelles façons de traiter le
problème (par exemple il serait possible de faire une page permettant
d'accéder à des fichiers en dehors de la structure du site web si ce
déplacement a pour but de mettre à disposition ou pas des fichiers sur le
site web).

Essaie peut-être de faire une maquette réduite à sa plus simple expression
qui montre ce problème.


---
Patrice

"Yannis"
> Merci pour ces éléments.
>
> Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
> J'ai fait quelques essais :
> - En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
> supprime n'importe quel de ces répertoires (ils ont ASPNet comme
> propriétaire)
> - En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
> propriétaire est Yannis) :
> -- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
> -- J'arrive à déplacer Tutu, puis Titi, ...
> -- J'arrive à supprimer Tutu (par contre il faut fermer la solution VS.Net
> pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
> refusé sur Tutu car je pense qu'il doit être vérouillé)
> -- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) => Le
> répertoire n'est pas vide !
>
> Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés !
> Est-ce un bug de la classe Directory ?
>
> Merci.
>
> --
> Yannis
>
> "Patrice" wrote:
>
>> "Full control" ou "R/W" comme dans le message original ? Notamment pour
>> déplacer il faut avoir le droit de supprimer la source.
>>
>> Essaie par exemple d'écrire le code qui permet de supprimer dossier par
>> dossier pour voir sur quel dossier cela coince ou utiliser un outil comme
>> filemon pour voir quel est le fichier qui coince (www.sysinternals.com).
>>
>> Attention aussi, si le fichier vient d'être utilisé sur le site, il est
>> possible qu'il soit verrouillé (ou par exemple si un fichier vient d'être
>> traité on a pu oublier de le fermer).
>>
>> Un bon candidat est une interférence avec ASP.NET qui surveille également
>> la
>> structure des dossiers pour pouvoir rédémarrer en cas de changement d'un
>> web.config...
>>
>> Voir si il ne serait pas possible de mettre ces fichiers en dehors du
>> site
>> web (par exemple via un répertoire virtuel).
>>
>> Bonne chance
>>
>> --
>> Patrice
>>
>> "Yannis" >> news:
>>
>> > Bonjour,
>> >
>> > Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
>> > l'avoir
>> > envoyé aux US.
>> > Bref, je reformule ma question en français :
>> >
>> > Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
>> > Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
>> > parti des répertoires de mon site, j'ai une IOException "L'accès à Src
>> > est
>> > refusé".
>> > Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
>> > control.
>> >
>> > Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>> >
>> > Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site
>> > (par
>> > exemple, dans C:Temp), ça marche aussi !
>> >
>> > Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>> >
>> > Quelqu'un aurait une idée ?
>> >
>> > Merci,
>> > Yannis.
>>
>>
>>





Yannis
Le #12182771
Hello!

En fait le chemin dans le code est bien un chemin complet du style
"C:Mes_RepsTiti".

Pour reproduire c'est ultra simple ::
- Nouveau Site Web
- Créer avec Windows Explorer "Toto/Titi/tutu" à la racine du site web
- Dans le Page_Load de Default.aspx :
-- Directory.Move(Server.MapPath("Toto/Titi"), @"C:TempTiti");

J'ai un accès refusé sur Titi !
Pourtant, tout mon site à full-control pour le user ASPNet.

Voilà.

--
Yannis

"Patrice" wrote:

Je ne pense pas que cela soit un bug.

...Titi ne me plait pas. Quel est le chemin courant pour une application Web
? Utilise un chemin absolu pour commencer pour être sûr que le dossier soit
bien le bon. En plus si le dossier est ouvert dans VS.NET cela me choque pas
trop que l'on ne puisse pas le supprimer.

Expliquer le but peut aussi susciter de nouvelles façons de traiter le
problème (par exemple il serait possible de faire une page permettant
d'accéder à des fichiers en dehors de la structure du site web si ce
déplacement a pour but de mettre à disposition ou pas des fichiers sur le
site web).

Essaie peut-être de faire une maquette réduite à sa plus simple expression
qui montre ce problème.


---
Patrice

"Yannis"
> Merci pour ces éléments.
>
> Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
> J'ai fait quelques essais :
> - En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
> supprime n'importe quel de ces répertoires (ils ont ASPNet comme
> propriétaire)
> - En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
> propriétaire est Yannis) :
> -- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
> -- J'arrive à déplacer Tutu, puis Titi, ...
> -- J'arrive à supprimer Tutu (par contre il faut fermer la solution VS.Net
> pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
> refusé sur Tutu car je pense qu'il doit être vérouillé)
> -- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) => Le
> répertoire n'est pas vide !
>
> Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés !
> Est-ce un bug de la classe Directory ?
>
> Merci.
>
> --
> Yannis
>
> "Patrice" wrote:
>
>> "Full control" ou "R/W" comme dans le message original ? Notamment pour
>> déplacer il faut avoir le droit de supprimer la source.
>>
>> Essaie par exemple d'écrire le code qui permet de supprimer dossier par
>> dossier pour voir sur quel dossier cela coince ou utiliser un outil comme
>> filemon pour voir quel est le fichier qui coince (www.sysinternals.com).
>>
>> Attention aussi, si le fichier vient d'être utilisé sur le site, il est
>> possible qu'il soit verrouillé (ou par exemple si un fichier vient d'être
>> traité on a pu oublier de le fermer).
>>
>> Un bon candidat est une interférence avec ASP.NET qui surveille également
>> la
>> structure des dossiers pour pouvoir rédémarrer en cas de changement d'un
>> web.config...
>>
>> Voir si il ne serait pas possible de mettre ces fichiers en dehors du
>> site
>> web (par exemple via un répertoire virtuel).
>>
>> Bonne chance
>>
>> --
>> Patrice
>>
>> "Yannis" >> news:
>>
>> > Bonjour,
>> >
>> > Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
>> > l'avoir
>> > envoyé aux US.
>> > Bref, je reformule ma question en français :
>> >
>> > Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
>> > Mais lorsque mon répertoire contient des sous-répertoires et qu'il fait
>> > parti des répertoires de mon site, j'ai une IOException "L'accès à Src
>> > est
>> > refusé".
>> > Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
>> > control.
>> >
>> > Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>> >
>> > Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon site
>> > (par
>> > exemple, dans C:Temp), ça marche aussi !
>> >
>> > Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>> >
>> > Quelqu'un aurait une idée ?
>> >
>> > Merci,
>> > Yannis.
>>
>>
>>





Patrice
Le #12182751
J'utilisera des noms différents pour voir si le problème est côté source ou
côté destination?. Il se pourrait que les droits sur le dossier temp ne
soient pas corrects.

Comme indiqué précédemment que donne par exemple du code qui créerait
simplement un dossier dans temp (ou de supprimer le dossier déplacé etc...).
Comme il y n'a plus de copie cela permet de voir plus facilement si le pb
est à la source ou à la destination.

--
Patrice


"Yannis"
Hello!

En fait le chemin dans le code est bien un chemin complet du style
"C:Mes_RepsTiti".

Pour reproduire c'est ultra simple ::
- Nouveau Site Web
- Créer avec Windows Explorer "Toto/Titi/tutu" à la racine du site web
- Dans le Page_Load de Default.aspx :
-- Directory.Move(Server.MapPath("Toto/Titi"), @"C:TempTiti");

J'ai un accès refusé sur Titi !
Pourtant, tout mon site à full-control pour le user ASPNet.

Voilà.

--
Yannis

"Patrice" wrote:

Je ne pense pas que cela soit un bug.

...Titi ne me plait pas. Quel est le chemin courant pour une application
Web
? Utilise un chemin absolu pour commencer pour être sûr que le dossier
soit
bien le bon. En plus si le dossier est ouvert dans VS.NET cela me choque
pas
trop que l'on ne puisse pas le supprimer.

Expliquer le but peut aussi susciter de nouvelles façons de traiter le
problème (par exemple il serait possible de faire une page permettant
d'accéder à des fichiers en dehors de la structure du site web si ce
déplacement a pour but de mettre à disposition ou pas des fichiers sur le
site web).

Essaie peut-être de faire une maquette réduite à sa plus simple
expression
qui montre ce problème.


---
Patrice

"Yannis" news:

> Merci pour ces éléments.
>
> Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
> J'ai fait quelques essais :
> - En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
> supprime n'importe quel de ces répertoires (ils ont ASPNet comme
> propriétaire)
> - En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
> propriétaire est Yannis) :
> -- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
> -- J'arrive à déplacer Tutu, puis Titi, ...
> -- J'arrive à supprimer Tutu (par contre il faut fermer la solution
> VS.Net
> pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
> refusé sur Tutu car je pense qu'il doit être vérouillé)
> -- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) =>
> Le
> répertoire n'est pas vide !
>
> Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés
> !
> Est-ce un bug de la classe Directory ?
>
> Merci.
>
> --
> Yannis
>
> "Patrice" wrote:
>
>> "Full control" ou "R/W" comme dans le message original ? Notamment
>> pour
>> déplacer il faut avoir le droit de supprimer la source.
>>
>> Essaie par exemple d'écrire le code qui permet de supprimer dossier
>> par
>> dossier pour voir sur quel dossier cela coince ou utiliser un outil
>> comme
>> filemon pour voir quel est le fichier qui coince
>> (www.sysinternals.com).
>>
>> Attention aussi, si le fichier vient d'être utilisé sur le site, il
>> est
>> possible qu'il soit verrouillé (ou par exemple si un fichier vient
>> d'être
>> traité on a pu oublier de le fermer).
>>
>> Un bon candidat est une interférence avec ASP.NET qui surveille
>> également
>> la
>> structure des dossiers pour pouvoir rédémarrer en cas de changement
>> d'un
>> web.config...
>>
>> Voir si il ne serait pas possible de mettre ces fichiers en dehors du
>> site
>> web (par exemple via un répertoire virtuel).
>>
>> Bonne chance
>>
>> --
>> Patrice
>>
>> "Yannis" >> news:
>>
>> > Bonjour,
>> >
>> > Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
>> > l'avoir
>> > envoyé aux US.
>> > Bref, je reformule ma question en français :
>> >
>> > Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
>> > Mais lorsque mon répertoire contient des sous-répertoires et qu'il
>> > fait
>> > parti des répertoires de mon site, j'ai une IOException "L'accès à
>> > Src
>> > est
>> > refusé".
>> > Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
>> > control.
>> >
>> > Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>> >
>> > Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon
>> > site
>> > (par
>> > exemple, dans C:Temp), ça marche aussi !
>> >
>> > Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>> >
>> > Quelqu'un aurait une idée ?
>> >
>> > Merci,
>> > Yannis.
>>
>>
>>







Yannis
Le #12182741
Ok, j'ai oublié de préciser qu'il s'agit de la source. J'en suis sûr car il
me remet le chemin complet.
J'ai essayé de supprimer, déplacer ou créer des répertoires dans C:Temp, ça
marche nickel (même avec des sous-répertoire)
Ca ne marche plus dés lors qu'ils appartiennent aux répertoires de mon site.
La seule solution que j'envisage c'est de mettre tous les répertoires
annexes (qui me servent de stockage de fichiers) hors de mon site (accessible
via un répertoire virtuel).
Mais ça ne me satisfait pas vraiment...

--
Yannis

"Patrice" wrote:

J'utilisera des noms différents pour voir si le problème est côté source ou
côté destination?. Il se pourrait que les droits sur le dossier temp ne
soient pas corrects.

Comme indiqué précédemment que donne par exemple du code qui créerait
simplement un dossier dans temp (ou de supprimer le dossier déplacé etc...).
Comme il y n'a plus de copie cela permet de voir plus facilement si le pb
est à la source ou à la destination.

--
Patrice


"Yannis"
> Hello!
>
> En fait le chemin dans le code est bien un chemin complet du style
> "C:Mes_RepsTiti".
>
> Pour reproduire c'est ultra simple ::
> - Nouveau Site Web
> - Créer avec Windows Explorer "Toto/Titi/tutu" à la racine du site web
> - Dans le Page_Load de Default.aspx :
> -- Directory.Move(Server.MapPath("Toto/Titi"), @"C:TempTiti");
>
> J'ai un accès refusé sur Titi !
> Pourtant, tout mon site à full-control pour le user ASPNet.
>
> Voilà.
>
> --
> Yannis
>
> "Patrice" wrote:
>
>> Je ne pense pas que cela soit un bug.
>>
>> ...Titi ne me plait pas. Quel est le chemin courant pour une application
>> Web
>> ? Utilise un chemin absolu pour commencer pour être sûr que le dossier
>> soit
>> bien le bon. En plus si le dossier est ouvert dans VS.NET cela me choque
>> pas
>> trop que l'on ne puisse pas le supprimer.
>>
>> Expliquer le but peut aussi susciter de nouvelles façons de traiter le
>> problème (par exemple il serait possible de faire une page permettant
>> d'accéder à des fichiers en dehors de la structure du site web si ce
>> déplacement a pour but de mettre à disposition ou pas des fichiers sur le
>> site web).
>>
>> Essaie peut-être de faire une maquette réduite à sa plus simple
>> expression
>> qui montre ce problème.
>>
>>
>> ---
>> Patrice
>>
>> "Yannis" >> news:
>>
>> > Merci pour ces éléments.
>> >
>> > Je précise : Full control pour ASPNet, IUSr et Yannis (mon utilisateur)
>> > J'ai fait quelques essais :
>> > - En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace et
>> > supprime n'importe quel de ces répertoires (ils ont ASPNet comme
>> > propriétaire)
>> > - En créant Toto/Titi/Tutu directement dans un explorateur Windows (le
>> > propriétaire est Yannis) :
>> > -- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
>> > -- J'arrive à déplacer Tutu, puis Titi, ...
>> > -- J'arrive à supprimer Tutu (par contre il faut fermer la solution
>> > VS.Net
>> > pour qu'il effectue la modif, sinon dans l'explorateur je suis en accès
>> > refusé sur Tutu car je pense qu'il doit être vérouillé)
>> > -- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true)) =>
>> > Le
>> > répertoire n'est pas vide !
>> >
>> > Bref, je crois bien qu'il y a un beau méli-mélo de droits embouteillés
>> > !
>> > Est-ce un bug de la classe Directory ?
>> >
>> > Merci.
>> >
>> > --
>> > Yannis
>> >
>> > "Patrice" wrote:
>> >
>> >> "Full control" ou "R/W" comme dans le message original ? Notamment
>> >> pour
>> >> déplacer il faut avoir le droit de supprimer la source.
>> >>
>> >> Essaie par exemple d'écrire le code qui permet de supprimer dossier
>> >> par
>> >> dossier pour voir sur quel dossier cela coince ou utiliser un outil
>> >> comme
>> >> filemon pour voir quel est le fichier qui coince
>> >> (www.sysinternals.com).
>> >>
>> >> Attention aussi, si le fichier vient d'être utilisé sur le site, il
>> >> est
>> >> possible qu'il soit verrouillé (ou par exemple si un fichier vient
>> >> d'être
>> >> traité on a pu oublier de le fermer).
>> >>
>> >> Un bon candidat est une interférence avec ASP.NET qui surveille
>> >> également
>> >> la
>> >> structure des dossiers pour pouvoir rédémarrer en cas de changement
>> >> d'un
>> >> web.config...
>> >>
>> >> Voir si il ne serait pas possible de mettre ces fichiers en dehors du
>> >> site
>> >> web (par exemple via un répertoire virtuel).
>> >>
>> >> Bonne chance
>> >>
>> >> --
>> >> Patrice
>> >>
>> >> "Yannis" >> >> news:
>> >>
>> >> > Bonjour,
>> >> >
>> >> > Je viens de m'apercevoir que je me suis gouré de groupe. Je pensais
>> >> > l'avoir
>> >> > envoyé aux US.
>> >> > Bref, je reformule ma question en français :
>> >> >
>> >> > Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
>> >> > Mais lorsque mon répertoire contient des sous-répertoires et qu'il
>> >> > fait
>> >> > parti des répertoires de mon site, j'ai une IOException "L'accès à
>> >> > Src
>> >> > est
>> >> > refusé".
>> >> > Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en full
>> >> > control.
>> >> >
>> >> > Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>> >> >
>> >> > Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon
>> >> > site
>> >> > (par
>> >> > exemple, dans C:Temp), ça marche aussi !
>> >> >
>> >> > Donc il doit y avoir un pb de droits dans IIS où de propriétaire ?
>> >> >
>> >> > Quelqu'un aurait une idée ?
>> >> >
>> >> > Merci,
>> >> > Yannis.
>> >>
>> >>
>> >>
>>
>>
>>





Patrice
Le #12182711
Oup. Pas retrouvé ma source mais je crois me souvenir que quelqu'un avait eu
des pbs du même style apparemment à cause du "file system watcher" mis en
place par ASP.NET pour surveiller les modifications dans ses dossiers.

Donc voir effectivement peut-être avec un répertoire virtuel.

Egalement le but exact de ce déplacement peut aider...

---
Patrice

"Yannis"
Ok, j'ai oublié de préciser qu'il s'agit de la source. J'en suis sûr car
il
me remet le chemin complet.
J'ai essayé de supprimer, déplacer ou créer des répertoires dans C:Temp,
ça
marche nickel (même avec des sous-répertoire)
Ca ne marche plus dés lors qu'ils appartiennent aux répertoires de mon
site.
La seule solution que j'envisage c'est de mettre tous les répertoires
annexes (qui me servent de stockage de fichiers) hors de mon site
(accessible
via un répertoire virtuel).
Mais ça ne me satisfait pas vraiment...

--
Yannis

"Patrice" wrote:

J'utilisera des noms différents pour voir si le problème est côté source
ou
côté destination?. Il se pourrait que les droits sur le dossier temp ne
soient pas corrects.

Comme indiqué précédemment que donne par exemple du code qui créerait
simplement un dossier dans temp (ou de supprimer le dossier déplacé
etc...).
Comme il y n'a plus de copie cela permet de voir plus facilement si le pb
est à la source ou à la destination.

--
Patrice


"Yannis" news:

> Hello!
>
> En fait le chemin dans le code est bien un chemin complet du style
> "C:Mes_RepsTiti".
>
> Pour reproduire c'est ultra simple ::
> - Nouveau Site Web
> - Créer avec Windows Explorer "Toto/Titi/tutu" à la racine du site web
> - Dans le Page_Load de Default.aspx :
> -- Directory.Move(Server.MapPath("Toto/Titi"), @"C:TempTiti");
>
> J'ai un accès refusé sur Titi !
> Pourtant, tout mon site à full-control pour le user ASPNet.
>
> Voilà.
>
> --
> Yannis
>
> "Patrice" wrote:
>
>> Je ne pense pas que cela soit un bug.
>>
>> ...Titi ne me plait pas. Quel est le chemin courant pour une
>> application
>> Web
>> ? Utilise un chemin absolu pour commencer pour être sûr que le dossier
>> soit
>> bien le bon. En plus si le dossier est ouvert dans VS.NET cela me
>> choque
>> pas
>> trop que l'on ne puisse pas le supprimer.
>>
>> Expliquer le but peut aussi susciter de nouvelles façons de traiter le
>> problème (par exemple il serait possible de faire une page permettant
>> d'accéder à des fichiers en dehors de la structure du site web si ce
>> déplacement a pour but de mettre à disposition ou pas des fichiers sur
>> le
>> site web).
>>
>> Essaie peut-être de faire une maquette réduite à sa plus simple
>> expression
>> qui montre ce problème.
>>
>>
>> ---
>> Patrice
>>
>> "Yannis" >> news:
>>
>> > Merci pour ces éléments.
>> >
>> > Je précise : Full control pour ASPNet, IUSr et Yannis (mon
>> > utilisateur)
>> > J'ai fait quelques essais :
>> > - En créant Toto/Titi/Tutu avec du code behind, il me créé, déplace
>> > et
>> > supprime n'importe quel de ces répertoires (ils ont ASPNet comme
>> > propriétaire)
>> > - En créant Toto/Titi/Tutu directement dans un explorateur Windows
>> > (le
>> > propriétaire est Yannis) :
>> > -- je n'arrive pas à déplacer Titi (il contient le sous-rep Tutu)
>> > -- J'arrive à déplacer Tutu, puis Titi, ...
>> > -- J'arrive à supprimer Tutu (par contre il faut fermer la solution
>> > VS.Net
>> > pour qu'il effectue la modif, sinon dans l'explorateur je suis en
>> > accès
>> > refusé sur Tutu car je pense qu'il doit être vérouillé)
>> > -- Je n'arrive pas à supprimer Titi (avec Delete("...Titi", true))
>> > =>
>> > Le
>> > répertoire n'est pas vide !
>> >
>> > Bref, je crois bien qu'il y a un beau méli-mélo de droits
>> > embouteillés
>> > !
>> > Est-ce un bug de la classe Directory ?
>> >
>> > Merci.
>> >
>> > --
>> > Yannis
>> >
>> > "Patrice" wrote:
>> >
>> >> "Full control" ou "R/W" comme dans le message original ? Notamment
>> >> pour
>> >> déplacer il faut avoir le droit de supprimer la source.
>> >>
>> >> Essaie par exemple d'écrire le code qui permet de supprimer dossier
>> >> par
>> >> dossier pour voir sur quel dossier cela coince ou utiliser un outil
>> >> comme
>> >> filemon pour voir quel est le fichier qui coince
>> >> (www.sysinternals.com).
>> >>
>> >> Attention aussi, si le fichier vient d'être utilisé sur le site, il
>> >> est
>> >> possible qu'il soit verrouillé (ou par exemple si un fichier vient
>> >> d'être
>> >> traité on a pu oublier de le fermer).
>> >>
>> >> Un bon candidat est une interférence avec ASP.NET qui surveille
>> >> également
>> >> la
>> >> structure des dossiers pour pouvoir rédémarrer en cas de changement
>> >> d'un
>> >> web.config...
>> >>
>> >> Voir si il ne serait pas possible de mettre ces fichiers en dehors
>> >> du
>> >> site
>> >> web (par exemple via un répertoire virtuel).
>> >>
>> >> Bonne chance
>> >>
>> >> --
>> >> Patrice
>> >>
>> >> "Yannis" >> >> de
>> >> news:
>> >>
>> >> > Bonjour,
>> >> >
>> >> > Je viens de m'apercevoir que je me suis gouré de groupe. Je
>> >> > pensais
>> >> > l'avoir
>> >> > envoyé aux US.
>> >> > Bref, je reformule ma question en français :
>> >> >
>> >> > Je souhaite déplacer un répertoire avec Directory.Move(Src, Dst);
>> >> > Mais lorsque mon répertoire contient des sous-répertoires et
>> >> > qu'il
>> >> > fait
>> >> > parti des répertoires de mon site, j'ai une IOException "L'accès
>> >> > à
>> >> > Src
>> >> > est
>> >> > refusé".
>> >> > Pourtant, tous les répertoires de mon site ont ASPNet, IUSR en
>> >> > full
>> >> > control.
>> >> >
>> >> > Lorsqu'il ne possède pas de sous-répertoires, ça fonctionne bien.
>> >> >
>> >> > Lorsu'il contient des sous-répertoire, mais qu'il est hors de mon
>> >> > site
>> >> > (par
>> >> > exemple, dans C:Temp), ça marche aussi !
>> >> >
>> >> > Donc il doit y avoir un pb de droits dans IIS où de propriétaire
>> >> > ?
>> >> >
>> >> > Quelqu'un aurait une idée ?
>> >> >
>> >> > Merci,
>> >> > Yannis.
>> >>
>> >>
>> >>
>>
>>
>>







Publicité
Poster une réponse
Anonyme