2017-04-11 189 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

相关问题