2012-11-01 2 views
0

File.Exists renvoie false lorsque le fichier existe réellement.ASP.NET File.Exists renvoie false lorsque le fichier existe

Je sais que cela retournerait faux s'il n'y a pas d'autorisations de lecture, mais je n'arrive pas à le faire correctement.

Plus d'infos:

Ma FTP est organisé comme ceci:

Root 

    ImageSite 

     ImageDirectory 

    MySite 

     My .aspx.cs File that's calling File.Exists() 

J'ai essayé de télécharger le fichier .aspx.cs avec le même compte utilisateur ftp comme ImageSite & ImageDirectory. N'a pas aidé.

J'ai également essayé de remplacer les barres obliques avec des barres obliques inversées, juste pour être sûr.

Voici mon code - J'ai codé en dur le chemin du fichier vers le chemin ftp complet du répertoire image.

 string serverUrl [email protected]"\\fs4-n01\blah\blah\blah\ImageSite.com\web\content\Images\" + product.ImageUrl; 
     bool exists = File.Exists(serverUrl); 

Je pensais aussi à l'usurpation d'identité. J'utilise déjà une identité d'identité dans mon web.config et il ne semble pas que je puisse utiliser les deux, donc j'ai placé celui-ci dans le sous-répertoire où se trouve mon code, sous tag. Mais ça n'a pas l'air de le faire. (De toute façon, le propriétaire du fichier est le même que le répertoire de l'image, comme je l'ai mentionné.)

J'utilise ASP.NET 4.0.

Toutes les idées seraient appréciées.

+1

par l'URL il semble que vous utilisez samba (partage de fichiers), pas ftp. Est-ce exact? Pouvez-vous réellement ouvrir le fichier dans l'explorateur à partir du chemin dans votre code? Votre code est également exécuté sous un utilisateur différent (peut-être que cet utilisateur ne peut pas accéder à ce partage de fichiers)? – csauve

+0

Est-ce que ce compte que le site s'exécute sous (voir l'identité du pool d'applications) a des autorisations pour lire le répertoire? – Oded

+0

Je ne suis pas sûr, j'y accède certainement via FTP. J'ai obtenu cette URL en utilisant File.GetDirectoryName (Server.MapPath ("~")) ... – Rivka

Répondre

2

J'ai appelé mon fournisseur d'hébergement (Rackspace) et on m'a dit comment fonctionne .NET fonctionne est que vous ne pouvez pas accéder aux fichiers au-delà du répertoire de contenu pour des raisons de sécurité. (Pour les sites classiques ASP, il vous laisse, dès maintenant.)

+0

Pouvez-vous fournir une documentation pour sauvegarder ces informations? –

+0

@RyanGates pour clarifier, il s'agit d'une limitation spécifique à Rackspace pour les environnements de site cloud. – Rivka

+0

Je vois. Merci d'avoir ajouté cette mise en garde. –

Questions connexes