ASP.NET對路徑"xxxxx"的訪問被拒絕的解決方法小結(jié)
更新時間:2012年09月18日 22:52:35 作者:
異常詳細信息: System.UnauthorizedAccessException: 對路徑“D:/temp1/MyTest.txt”的訪問被拒絕
在windows 2003下,在運行web應用程序的時候出現(xiàn)一下錯誤:
服務器無法處理請求,-->對路徑“C:/temp/mytest.txt”的訪問拒絕
說明: 執(zhí)行當前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: 對路徑“D:/temp1/MyTest.txt”的訪問被拒絕。
解決方案一
在需要進行讀寫操作的目錄下添加Network Service這個帳號,由于在iis 6.0中,默認的應用程序池中的標示用的是Network Service,所以在進程中是使用Network Service這個帳號運行來運行w3wp.exe進程,而當我們在運行VS 2003的時候需要對某一個目錄下進行讀寫操作,看了一下該文件夾,發(fā)現(xiàn)沒有Network Service,添加上該賬號,同時選上FULL CONTROL,問題解決。
具體過程:對該文件夾按右鍵--屬性--安全--添加--高級--立即查找--在“搜索結(jié)果”下選“NETWORK SERVICE”--確定--確定--確定
解決方案二
在IIS6.0中的默認應用程序池-->屬性-->標示中把Net Service改成Local System該問題也可以解決。
什么是應用程序池呢?這是微軟的一個全新概念:應用程序池是將一個或多個應用程序鏈接到一個或多個工作進程集合的配置。因為應用程序池中的應用程序與其他應用程序被工作進程邊界分隔,所以某個應用程序池中的應用程序不會受到其他應用程序池中應用程序所產(chǎn)生的問題的影響。
Windows 2003同時支持兩種工作模式,默認為ISS 6.0工作進程隔離模式。工作進程隔離模式防止一個應用程序或站點停止了而影響另一個應用程序或站點,大大增強了IIS的可靠性。那么如何設置兩種工作模式呢?
啟動IIS管理器,右擊網(wǎng)站,選擇“屬性”,打開屬性對話框(圖1)。在IIS 6.0工作進程隔離模式下,所有的應用程序代碼都在隔離環(huán)境中運行,它們是如何進行隔離的呢?Windows 2003新增了應用程序池,工作進程隔離模式允許客戶創(chuàng)建多個應用程序池,每個應用程序池都可以有不同的配置。因為這些應用程序池直接從內(nèi)核(而非WWW服務)接收它們的請求,所以性能和可靠性得到了增強。要隔離運行在同一臺計算機上但屬于不同網(wǎng)站的Web應用程序,需要為每個網(wǎng)站創(chuàng)建單獨的應用程序池。
創(chuàng)建應用程序池
在IIS管理器中,打開本地計算機,右鍵單擊“應用程序池”,選擇新建“應用程序池” (必須在工作進程隔離模式下才能建立應用程序池) 。“應用程序池名稱”框中,輸入新的應用程序池名稱。如果在“應用程序池 ID”框中出現(xiàn)的 ID (如:AppPool #1)不是您想要的,可進行重命名。如果您單擊了“將現(xiàn)有應用程序池作為模板”,請在“應用程序池名稱”框中右鍵單擊想要用來作為模板的應用程序池。最后單擊[確定]。
指派應用程序池
在 IIS 管理器中,右鍵單擊您要為其指派應用程序池的應用程序,然后單擊“屬性”。 單擊“主目錄”選項卡,確認您正在指派的目錄或虛擬目錄的“應用程序名”是否已被填寫。如果“應用程序名”框尚未被填寫,請單擊“創(chuàng)建”,然后輸入名稱。
在“應用程序池”列表框中,選擇您想要為其指派的應用程序池的名稱。最后單擊[確定]。
在網(wǎng)上查詢了很多信息,有下列幾種解決方案:
1.可能是安裝出了問題,重新安裝 執(zhí)行命令,aspnet_regiis -i ,記得要生啟啊
2.提升everyone的權(quán)限到可修改
3.提升aspnet權(quán)限:控制面板-管理工具-計算機管理-本地用戶和組 找到ASPNET 隸屬于里面加上Administrators
4.將iis虛擬目錄刪掉后重新建
5.在web.config文件中加入<identity impersonate="true"/>
6. 若要授予 ASP.NET 對文件的寫訪問權(quán),請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當?shù)挠脩艋蚪M。突出顯示 ASP.NET 帳戶,選中所需訪問權(quán)限對應的框。
everyone加寫入權(quán)限
7.用xml文件保存系統(tǒng)選項設置,用asp.net寫入,調(diào)試運行(ctrl+F5)正常。站點配置后運行報錯:“對路徑xxx.xml的訪問被拒絕”。資源管理器->工具->文件夾選項->查看 不選"使用簡單文件共享",右擊xml文件,選"屬性"點"安全"添加"aspnet",選"完全控制",即可。
服務器無法處理請求,-->對路徑“C:/temp/mytest.txt”的訪問拒絕
說明: 執(zhí)行當前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: 對路徑“D:/temp1/MyTest.txt”的訪問被拒絕。
解決方案一
在需要進行讀寫操作的目錄下添加Network Service這個帳號,由于在iis 6.0中,默認的應用程序池中的標示用的是Network Service,所以在進程中是使用Network Service這個帳號運行來運行w3wp.exe進程,而當我們在運行VS 2003的時候需要對某一個目錄下進行讀寫操作,看了一下該文件夾,發(fā)現(xiàn)沒有Network Service,添加上該賬號,同時選上FULL CONTROL,問題解決。
具體過程:對該文件夾按右鍵--屬性--安全--添加--高級--立即查找--在“搜索結(jié)果”下選“NETWORK SERVICE”--確定--確定--確定
解決方案二
在IIS6.0中的默認應用程序池-->屬性-->標示中把Net Service改成Local System該問題也可以解決。
什么是應用程序池呢?這是微軟的一個全新概念:應用程序池是將一個或多個應用程序鏈接到一個或多個工作進程集合的配置。因為應用程序池中的應用程序與其他應用程序被工作進程邊界分隔,所以某個應用程序池中的應用程序不會受到其他應用程序池中應用程序所產(chǎn)生的問題的影響。
Windows 2003同時支持兩種工作模式,默認為ISS 6.0工作進程隔離模式。工作進程隔離模式防止一個應用程序或站點停止了而影響另一個應用程序或站點,大大增強了IIS的可靠性。那么如何設置兩種工作模式呢?
啟動IIS管理器,右擊網(wǎng)站,選擇“屬性”,打開屬性對話框(圖1)。在IIS 6.0工作進程隔離模式下,所有的應用程序代碼都在隔離環(huán)境中運行,它們是如何進行隔離的呢?Windows 2003新增了應用程序池,工作進程隔離模式允許客戶創(chuàng)建多個應用程序池,每個應用程序池都可以有不同的配置。因為這些應用程序池直接從內(nèi)核(而非WWW服務)接收它們的請求,所以性能和可靠性得到了增強。要隔離運行在同一臺計算機上但屬于不同網(wǎng)站的Web應用程序,需要為每個網(wǎng)站創(chuàng)建單獨的應用程序池。
創(chuàng)建應用程序池
在IIS管理器中,打開本地計算機,右鍵單擊“應用程序池”,選擇新建“應用程序池” (必須在工作進程隔離模式下才能建立應用程序池) 。“應用程序池名稱”框中,輸入新的應用程序池名稱。如果在“應用程序池 ID”框中出現(xiàn)的 ID (如:AppPool #1)不是您想要的,可進行重命名。如果您單擊了“將現(xiàn)有應用程序池作為模板”,請在“應用程序池名稱”框中右鍵單擊想要用來作為模板的應用程序池。最后單擊[確定]。
指派應用程序池
在 IIS 管理器中,右鍵單擊您要為其指派應用程序池的應用程序,然后單擊“屬性”。 單擊“主目錄”選項卡,確認您正在指派的目錄或虛擬目錄的“應用程序名”是否已被填寫。如果“應用程序名”框尚未被填寫,請單擊“創(chuàng)建”,然后輸入名稱。
在“應用程序池”列表框中,選擇您想要為其指派的應用程序池的名稱。最后單擊[確定]。
在網(wǎng)上查詢了很多信息,有下列幾種解決方案:
1.可能是安裝出了問題,重新安裝 執(zhí)行命令,aspnet_regiis -i ,記得要生啟啊
2.提升everyone的權(quán)限到可修改
3.提升aspnet權(quán)限:控制面板-管理工具-計算機管理-本地用戶和組 找到ASPNET 隸屬于里面加上Administrators
4.將iis虛擬目錄刪掉后重新建
5.在web.config文件中加入<identity impersonate="true"/>
6. 若要授予 ASP.NET 對文件的寫訪問權(quán),請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當?shù)挠脩艋蚪M。突出顯示 ASP.NET 帳戶,選中所需訪問權(quán)限對應的框。
everyone加寫入權(quán)限
7.用xml文件保存系統(tǒng)選項設置,用asp.net寫入,調(diào)試運行(ctrl+F5)正常。站點配置后運行報錯:“對路徑xxx.xml的訪問被拒絕”。資源管理器->工具->文件夾選項->查看 不選"使用簡單文件共享",右擊xml文件,選"屬性"點"安全"添加"aspnet",選"完全控制",即可。
您可能感興趣的文章:
- asp.net gridview 72般絕技
- JQuery.uploadify 上傳文件插件的使用詳解 for ASP.NET
- asp.net生成Excel并導出下載五種實現(xiàn)方法
- ASP.NET中的幾種彈出框提示基本實現(xiàn)方法
- asp.net獲取當前網(wǎng)址url的各種屬性(文件名、參數(shù)、域名 等)的代碼
- asp.net cookie的操作,寫入、讀取與操作
- asp.net 面試 筆試題目[附答案]
- 使用jQuery向asp.net Mvc傳遞復雜json數(shù)據(jù)-ModelBinder篇
- asp.net 驗證碼生成和刷新及驗證
- ASP.NET The system cannot find the file specified解決辦法
相關文章
ASP.NET中的跳轉(zhuǎn) 200, 301, 302轉(zhuǎn)向?qū)崿F(xiàn)代碼
跳轉(zhuǎn)非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會用得到。跳轉(zhuǎn)的目的本來很簡單,就是當用戶或系統(tǒng)需要時從一個頁面轉(zhuǎn)向另一個頁面,但自從有了各種各樣的需求,還有那個什么SEO的東西之后,跳轉(zhuǎn)被搞得極其復雜2008-09-09asp.net實現(xiàn)導出DataTable數(shù)據(jù)到Word或者Excel的方法
這篇文章主要介紹了asp.net實現(xiàn)導出DataTable數(shù)據(jù)到Word或者Excel的方法,涉及asp.net操作office文件的相關技巧,需要的朋友可以參考下2016-08-08擴展ASP.NET MVC三層框架且使用StructureMap實現(xiàn)依賴注入1-Model層
本篇文章將向大家介紹如何添加Service和Repository層并且使用StructureMap把Service層注入到Controller,把Repository注入到Service層。2013-04-04