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();
}
我已经尝试在路径中使用/内容并将额外的/添加到文件名中。尝试过有和没有蒂尔达。它们都在本地正确解析路径,但不在服务器上解析。
作为记录,我尝试访问的路径是
本地: C:\Users\username\Documents\MyWebSite\Web\Content\TestLog.txt服务器: D:\Web\MyWebSite\Content\TestLog.txt
由于MyWebSite\Web是本地站点的根,MyWebSite是服务器上的根,因此 mywebsite.com/content/TestLog.txt
任何帮助都非常感谢。
这将是一个权限问题。
当您在本地运行时(在卡西尼网络服务器下...Visual Studio 的一部分(,您已获得许可。
在 IIS 中托管时,可能不会。
授予对该文件夹的"写入"权限 - 完全取决于您使用的 IIS 版本如何执行此操作 - 可能通过应用程序池。
如何授予 ASP.NET 写入 Windows 7 中的文件夹的权限?
Web 应用程序的 IIS7 文件夹权限