2010-12-13 3 views
0

Problème typique, mais j'ai fait tout ce que je pouvais penser pour que cela fonctionne. J'ai mis les comptes NETWORK SERVICE et ASPNET à FULL CONTROL sur mon PC. J'utilise le serveur web intégré de Cassini pour tester mon application, sans aucune chance. J'ai même essayé de créer un dossier en dehors du dossier APP_DATA, et dit toujours que l'accès est refusé.ASP.net: impossible d'écrire dans le dossier App_Data, l'accès est refusé

Vous avez des idées?

EXEMPLE DE CODE:

Dim uploadedFile As HttpPostedFile = Request.Files(0) 
     Dim len As Integer = uploadedFile.ContentLength 
     Dim fn As String = Path.GetFileName(uploadedFile.FileName) 
     Dim SaveLocation As String = Server.MapPath("~/Help") 
     Dim MyStream As Stream = uploadedFile.InputStream 
     Dim input(len) As Byte 

     MyStream = uploadedFile.InputStream 
     MyStream.Read(input, 0, len) 

     Try 

      Dim newFile As FileStream = New FileStream(SaveLocation, FileMode.Create) 
      newFile.Write(input, 0, input.Length) 
      newFile.Close() 
      'Dim writer As Stream = New FileStream(SaveLocation, FileMode.Create) 
      'writer.Read() 
      'writer.Close() 
      'uploadedFile.SaveAs(SaveLocation) 
     Catch ex As Exception 

     End Try 

MISE À JOUR: nécessaire pour avoir le nom de fichier dans l'emplacement de sauvegarde, fixe.

+0

Êtes-vous sûr que le serveur Web exécute votre site en tant qu'utilisateur NETWORK SERVICE ou ASPNET? On dirait qu'il fonctionne sous un autre utilisateur. – derek

+0

J'ai tout réglé dans l'onglet Sécurité pour un contrôle total. – jlrolin

Répondre

2

Très bien, je l'ai compris. J'avais besoin d'avoir le nom de fichier dans le SaveLocation. Complètement manqué cela. Merci de votre aide.

+2

Juste poster cette information dans la question d'origine, pas comme une réponse. –

+4

@Jack - En fait, il fournissait une réponse à sa propre question, qui est à la fois valable pour la plate-forme de débordement de pile et corrige cette situation. –

0

Quelle version d'IIS utilisez-vous?

Sur IIS 6 et supérieur, il s'agit du SERVICE RÉSEAU.

Sur IIS 5 et versions ultérieures, il s'agit du compte d'utilisateur ASPNET qui nécessite l'accès requis.

+0

J'utilise le serveur Web intégré de Cassini. Mais j'ai donné accès à NETWORK SERVICE et ASPNET, accès complet. – jlrolin

0

Si vous utilisez IIS, recherchez quel compte système (ou utilisateur) pour le pool d'applications pour le site avec lequel vous rencontrez des problèmes. Vérifiez que cet utilisateur dispose des autorisations sur le dossier en question.

Si vous êtes dans Visual Studio 2005+, il déploie un nouveau serveur de développement ASP.NET. Cela fonctionne comme votre compte actuellement connecté. Êtes-vous un administrateur local sur cette machine?

+0

J'utilise VS 2010, et je ne suis pas l'administrateur. Bien que mon compte d'utilisateur ait le contrôle total. – jlrolin

+0

Avez-vous essayé d'activer le contrôle total pour tout le monde? Si cela provoque l'erreur disparaître, il y a un problème d'autorisations de compte. Si l'erreur persiste, vous avez un problème d'accès au répertoire différent. – Keith

Questions connexes