2012-06-28 3 views
1

j'appelle cette fonction de mon code-behind:
DeleteFile (Server.MapPath ("/") + "sitemap_index.xml")Supprimer le fichier du serveur: L'accès au chemin est refusé

Public Shared Function DeleteFile(ByVal filename As String) As Boolean 
'deletes file from server 
Dim bResult As Boolean = False 
Try 
    If File.Exists(filename) Then 
     'delete file 
     File.Delete(filename) 
     bResult = True 
    Else 
     bResult = True 
    End If 
Catch ex As Exception 

End Try 
Return bResult 
End Function 

Je reçois alors l'erreur: L'accès au chemin 'E: \ zz \ ​​wwwroot \ sitemap_index.xml' est refusé.

Dans d'autres sites de moi-même cette logique fonctionne très bien, mais sur le site actuel, il ne fonctionne pas. J'ai vérifié les paramètres de sécurité sur mon Windows Server 2008 R2 Standard.

Voir ici les paramètres que j'ai sur mon serveur Windows sur le dossier wwwroot:

Comme cela a été suggéré par d'autres messages que j'ai lu j'ai essayé d'ajouter d'autres groupes d'utilisateurs, mais je n'ai pas de service ASPNET/groupe sur mon serveur.

Lorsque vous êtes connecté en tant qu'administrateur (authentification Forms) Je peux cliquer sur un bouton pour recréer le sitemap_index.xml et sitemaps.xml
Les utilisateurs devraient pouvoir supprimer et ajouter des images au wwwroot \ images \ uploads dossier

De quel groupe devrais-je indiquer les autorisations permettant d'autoriser et de sécuriser ce qui précède?

+0

Sous quel utilisateur le pool d'applications s'exécute-t-il dans IIS? Assurez-vous que l'utilisateur a accès. –

+0

Quand je vais dans les 'paramètres de base' et que je vérifie sous 'chemin physique', je vois Connect comme 'Administrateur'. Je vois également que les administrateurs de groupes d'utilisateurs ont un accès Contrôle total (grisé) sur le dossier wwwroot – Flo

+0

Où voyez-vous ces paramètres? Cela ne ressemble pas à IIS. –

Répondre

3

Vérifiez l'accès pour l'utilisateur du pool d'applications.

Recherchez le pool d'applications que votre site utilise, cliquez dessus avec le bouton droit de la souris et choisissez Advanced Settings.... Le nom de l'utilisateur que le pool utilise est indiqué en regard de Identity.

Notez que si l'identité dit « ApplicationPoolIdentity », vous devriez vérifier l'accès pour l'utilisateur IIS AppPool\<Name of the app pool here>Info about ApplicationPoolIdentity


Il ressemble à Modify autorisations sont required to delete files. Essayez d'accorder des autorisations NetworkService Modify.

+0

La propriété d'identité indique "NetworkService". Comme vous pouvez le voir, j'ai déjà fourni à cet utilisateur Read + Write + Read & Execute + Liste les permissions du contenu du dossier ... ou y a-t-il autre chose que je devrais ajouter? – Flo

+0

@Voir ma modification. Il semble que vous ayez besoin d'accorder des autorisations Modifier (ou un contrôle total) à NetworkService. –

+0

C'est ce qu'il a fait. Je vous remercie! – Flo

Questions connexes