2010-09-09 38 views
1

我正在使用asp.net 3.5。而我序列化服務器的對象,我租了託管和我要修改一些與XML一個DINAMIC方式,我無法將文件保存在服務器的根目錄中

這是我的代碼:

Stream writer = new FileStream(Environment.CurrentDirectory + @"\public_html\" + nombrearchivo.Text, FileMode.Create); 

serializer.Serialize(writer, p); 

,這是我的錯誤信息:

異常詳細信息: System.UnauthorizedAccessException的: 訪問路徑 'C:\ WINDOWS \ Syswow64資料\ INETSRV \ dasd.xml' 被拒絕。

謝謝!!

回答

0

答案是錯誤消息:「拒絕訪問」

您沒有寫權限到該文件夾​​,這是非常合情合理的;你不應該有寫入權限的文件夾,至少你可能不應該。

如果您需要緩存某些內容供以後使用,請將會話用於臨時存儲,或與您的託管公司談談獲取長期存儲的寫入權限。

+1

但他*不*寫入該文件夾(至少給了他給我們的代碼)。 – 2010-09-10 00:09:26

+0

@Kirk Woll'serializer.Serialize(writer,p);'? – 2010-09-10 16:37:00

+0

但是該作者的路徑包含「\ public_html \」,不是?而異常中的錯誤不包括該文件夾。 – 2010-09-10 16:43:50

0

Environment.CurrentDirectory是每個進程屬性,最有可能不是你想要的目錄;在這種情況下,它是啓動IIS工作進程的目錄。

在任何情況下,對於典型的ASP.Net託管(與物理或虛擬服務器託管相對),您將受到代碼訪問安全策略以及IIS輔助進程運行的IUSR帳戶權限的限制;通常這意味着非常小的權限,以試圖限制受損或惡意網頁腳本的損害,通常遠遠小於應用程序上載登錄的權限。

總之,如果你想保存文件,你將需要安排一個應用程序可寫目錄(並且可能比中等ASP.Net信任更大)。

0

我發現這個問題是路徑...

「\ hmfsw \網絡\ DTCWIN107 \ MYSITE.com \的public_html \」

工作得很好!在詢問主機提供商8次後,他們可以告訴我正確的一個

非常感謝你!

相關問題