Server.MapPath C#在本地工作,但不在服务器

时间:2017-04-11 09:44:46

标签: c# server.mappath

与Server.MapPath存在很大问题,因为我无法从服务器解析它并且不确定如何测试它正在尝试做什么。

在本地,它可以通过各种不同的方式正常工作,但是当我把它放到服务器上时,每个人都会失败。

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();
}

我已尝试/在路径中添加内容并将额外/添加到文件名中。尝试过有和没有蒂尔达。它们都在本地正确解析路径,但不在服务器上解析。

对于记录,我尝试访问的路径是

Local:C:\ Users \ username \ Documents \ MyWebSite \ Web \ Content \ TestLog.txt 服务器:D:\ Web \ MyWebSite \ Content \ TestLog.txt

MyWebSite \ Web是本地站点的根本MyWebSite是服务器上的根,所以mywebsite.com/content/TestLog.txt

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

它将成为一种权限。

当您在本地运行时(在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