Server.MapPath()错过了一个级别

时间:2013-05-17 13:29:51

标签: .net windows-server server.mappath

我们有一个.Net应用程序,我们有三个完全相同的副本。一个用于我们服务器上的开发,一个用于客户端服务器上的测试和实时开发。 我们必须在服务器上创建pdf文件,并将它们保存在指定的文件夹中。 它在开发和测试应用程序上运行良好,但不在现场。 当它应该保存文件时,它会向上跳转一个文件夹。

我已经使用server.mappath玩了一段时间,并获得了以下内容: 在实时应用中,如果相对路径包含"。"或" ..",然后再上升一级(路径不包含" LiveApplication"文件夹),但它适用于其他级别。

你对此有任何想法吗? 谢谢

直播应用:

xFileSystemDir:
../FileSpace/
Server.Mappath(xFileSystemDir):
C:\AppDir\FileSpace\
Server.Mappath("..\FileSpace"):
C:\AppDir\FileSpace
Server.Mappath("../FileSpace"):
C:\AppDir\FileSpace
Server.Mappath(xFileSystemDir & "Temp/" & xDir & "/" & PDFFileName):
C:\AppDir\FileSpace\Temp\PDF20130517-143114\Invoice.pdf
Server.Mappath(".")
C:\AppDir\LiveApplication\Script
Server.Mappath(".."):
C:\AppDir\LiveApplication

测试应用:

xFileSystemDir:
../FileSpace/
Server.Mappath(xFileSystemDir):
C:\AppDir\TestApplication\FileSpace\
Server.Mappath("..\FileSpace"):
C:\AppDir\TestApplication\FileSpace
Server.Mappath("../FileSpace"):
C:\AppDir\TestApplication\FileSpace
Server.Mappath(xFileSystemDir & "Temp/" & xDir & "/" & PDFFileName):
C:\AppDir\TestApplication\FileSpace\Temp\PDF20130517-143442\Invoice.pdf
Server.Mappath(".")
C:\AppDir\TestApplication\Script
Server.Mappath(".."):
C:\AppDir\TestApplication

客户端服务器上的物理文件夹树:

c:\
  AppDir\
    TestApplication\
      FileSpace\
        Temp\ - here goes the new files
    LiveApplication
      FileSpace\
        Temp\ - the new files should be created here
    FileSpace\ - this folder should not exists, but the live app creates the new files here
      Temp\

1 个答案:

答案 0 :(得分:0)

听起来您的网站在C:\ AppDir而不是C:\ AppDir \ LiveApplication中运行。您是否检查过HttpRuntime.AppDomainAppPath以查看它是否在某处设置错误。

相关问题