.Net 응용 프로그램이 있으며 세 개의 똑같은 복사본이 있습니다. 하나는 서버 개발을위한 것이고 다른 하나는 클라이언트의 서버에 테스트와 라이브 서버를 구축하는 것입니다. 서버에 pdf 파일을 만들어 지정된 폴더에 저장해야합니다. dev 및 테스트 응용 프로그램에서 제대로 작동하지만 라이브에서는 작동하지 않습니다. 파일을 저장할 때 한 폴더를 위로 이동합니다.Server.MapPath()가 한 레벨 손실됩니다.
나는 잠시 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\
아마도'Server.MapPath ("~/..")' –