2017-04-11 190 views
0

對Server.MapPath有很大的問題,因爲我無法從服務器解析它並確定如何測試它正在嘗試執行的操作。Server.MapPath C#在本地工作,但不在服務器上工作

在本地,它以各種不同的方式正常工作,但是當我把它放到服務器上時,每個人和每個人都失敗了。

string filename = "TestLog.txt"; 
string path = Path.Combine(Server.MapPath("~/Content/"), filename); 
Debug.WriteLine(path) 

using (System.IO.StreamWriter writer = new System.IO.StreamWriter(path, true)) 
{ 
    writer.WriteLine(message); 
    writer.Close(); 
} 

我試過/內容在路徑中,並添加額外/到文件名。嘗試過和沒有蒂爾達。它們都在本地正確解析路徑,但不在服務器上。

爲了記錄在案,我嘗試訪問的路徑是

地方:C:\ Users \用戶名\文檔\ MyWebSite \網絡\內容\ TestLog.txt 服務器:d:\網絡\ MyWebSite \內容\ TestLog.txt

隨着MyWebSite \ WEB是站點的根在本地MyWebSite是在服務器的根,所以mywebsite.com/content/TestLog.txt

在所有的任何幫助是極大的讚賞。

回答

0

這將是一個權限的事情。

當您在本地運行時(在Cassini WebServer ... Visual Studio的一部分下),您已獲得權限。

當您在IIS中託管時,您可能不會。

爲該文件夾提供「寫入」權限 - 全部取決於您使用的IIS版本如何執行 - 可能是通過ApplicationPool。

How do I give ASP.NET permission to write to a folder in Windows 7?

IIS7 folder permissions for web application

+0

感謝隊友。一個胖嘟嘟的你。 – Johnathan

相關問題