2

コード ビハインドでこの関数を呼び出します:
DeleteFile(Server.MapPath("/") + "sitemap_index.xml")

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

その後、次のエラーが表示されます: パス 'E:\zz\wwwroot\sitemap_index.xml' へのアクセスが拒否されました。

私の他のサイトでは、このロジックはうまく機能しますが、現在のサイトでは機能しません。Windows Server 2008 R2 Standard のセキュリティ設定を確認しました。

ここで、フォルダ wwwroot の Windows サーバーの設定を参照してください。

SYSTEM: フル コントロール
NETWORK SERVICE: 読み取り + 書き込み + 読み取りと実行 + フォルダーの内容の一覧表示
IIS_IUSRS: 読み取り + 書き込み

私が読んでいる他の投稿で示唆されているように、他のユーザーグループを追加しようとしましたが、サーバーに ASPNET サービス/グループがありません。

管理者 (フォーム認証) としてログインすると、ボタンをクリックして sitemap_index.xml と sitemaps.xml を再作成できます。
ユーザーは、wwwroot\images\uploads フォルダーから画像を削除および追加できるはずです。

上記を可能かつ安全にするには、どのグループにどの権限を付与する必要がありますか?

4

1 に答える 1

7

アプリケーションプールユーザーのアクセスを確認してください。

サイトで使用しているアプリケーションプールを見つけて右クリックし、を選択しますAdvanced Settings...。プールが使用しているユーザーの名前がの横に表示されIdentityます。

IDに「ApplicationPoolIdentity」と表示されている場合は、 ApplicationPoolIdentityに関するユーザー情報のアクセスを確認する必要があることに注意してください。IIS AppPool\<Name of the app pool here>


ファイルを削除するにModifyは権限が必要なようです。NetworkServiceアクセス許可を付与してみてください。Modify

于 2012-06-28T22:37:51.283 に答える