2010-05-07 5 views
-2

J'essaie d'écrire dans un fichier sur mon site web. Mais lorsque vous essayez d'ouvrir le fichier en utilisant cette ligne: fileName = HostingEnvironment.ApplicationPhysicalPath + "lala.htm";asp.net tryint pour écrire dans un fichier sur le serveur

Je reçois cette exception: (Il obtient le droit chemin, mais ne me permet pas d'y écrire)

L'accès au chemin 'd: \ DZHosts \ LocalUser \ asafz83 \ www .asafz83.somee.com \ lala.htm 'est refusée. Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.UnauthorizedAccessException: L'accès au chemin 'd: \ DZHosts \ LocalUser \ asafz83 \ www.asafz83.somee.com \ lala.htm' est refusé.

ASP.NET n'est pas autorisé à accéder à la ressource demandée. Envisagez d'accorder des droits d'accès à la ressource à l'identité de demande ASP.NET. ASP.NET a une identité de processus de base (généralement {MACHINE} \ ASPNET sur IIS 5 ou Service réseau sur IIS 6) qui est utilisée si l'application n'emprunte pas d'identité. Si l'application emprunte l'identité via, l'identité sera l'utilisateur anonyme (généralement IUSR_MACHINENAME) ou l'utilisateur de requête authentifié.

Pour accorder l'accès ASP.NET à un fichier, cliquez avec le bouton droit sur le fichier dans l'Explorateur, choisissez "Propriétés" et sélectionnez l'onglet Sécurité. Cliquez sur "Ajouter" pour ajouter l'utilisateur ou le groupe approprié. Mettez en surbrillance le compte ASP.NET et cochez les cases correspondant à l'accès souhaité.

Erreur Source:

Une exception non gérée a été générée pendant l'exécution de la demande Web actuelle. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de la pile d'exceptions ci-dessous.

Stack Trace:

[UnauthorizedAccessException: L'accès au chemin 'd: \ DZHosts \ LocalUser \ asafz83 \ www.asafz83.somee.com \ lala.htm'. Est refusée] System.IO .__ erreur .WinIOError (code d'erreur Int32, chaîne maybeFullPath) +7716639 System.IO.FileStream.Init (chemin d'accès, mode FileMode, accès FileAccess, droits Int32, droits d'utilisation booléens, partage FileShare, taille de tampon Int32, options FileOptions, SECURITY_ATTRIBUTES secAttrs, chaîne msgPath, Boolean bFromProxy) +1162 System.IO.FileStream..ctor (Chemin de chaîne, mode FileMode, accès FileAccess, partage FileShare, taille de tampon Int32, options FileOptions) +65 System.IO.StreamWriter.CreateFile (Chemin de chaîne, Ajout booléen) +62 System.IO.StreamWriter..ctor (Chemin de chaîne, Ajout booléen, Codage de codage, Int32 bufferSize) +58 System.IO.StreamWriter..ctor (Chemin de chaîne, Ajout booléen) +33 Classe1. HTTPFilter.Init (contexte HttpApplication) dans C: \ Documents and Settings \ אסף אולאי \ Mes documents \ Visual Studio 2008 \ Projects \ WebSite6 \ Class1 \ httpFilter.cs: 50 System.Web.HttpApplication.InitModulesCommon() +65 Système .Web.HttpApplication.InitModules() +43 System.Web.HttpApplication.InitInternal (HttpContext contexte, HttpApplicationState état, MethodInfo [] Chariot) 729 System.Web.HttpApplicationFactory.GetNormalApplicationInstance (contexte HttpContext) 298 System.Web .HttpApplicationFactory.GetApplicationInstance (contexte HttpContext) +107 System.Web.HttpRuntime.ProcessRequestInternal (HttpWorkerRequest wr) +289

AIDE S'IL VOUS PLAÎT ... TOUTE PERSONNE ...

+0

Veuillez reformater le code dans votre question (par exemple 'fileName = HostingEnvironment.ApplicationPhysicalPath +" lala.htm ";' Cela le rendrait beaucoup plus lisible. Et comme le suggère @Darin Dimitrov, la solution semble être dans l'exception/question?!? – scherand

Répondre

0

Ne vous lisez le message d'exception:

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

accorder les permissions d'écriture sur le compte ASPNET dans le dossier d:\DZHosts\LocalUser\asafz83\www.asafz83.somee.com.

+0

Je ne suis pas stupide, il n'y a pas d'option pour lui accorder le droit d'accès comme il l'a dit dans le 2ème paragraphe, vous avez été sage de citer Quelqu'un qui sait comment résoudre ce problème s'il vous plaît ... – asaf

+0

Pourquoi est-ce que ce n'est pas une option pour que vous accordiez un accès en écriture au fichier pour l'identité ASP.NET? –

+0

@asaf, avez-vous des privilèges d'administration sur la machine cible? –

Questions connexes