0

我们有一个 .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\
4

1 回答 1

0

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

于 2013-05-17T14:18:06.063 回答