2013-05-17 1 views
0

.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\ 
+0

아마도'Server.MapPath ("~/..")' –

답변

0

C에서 실행되는 웹 사이트와 같은 소리 : \ AppDir 대신 C : \ AppDir \ LiveApplication. HttpRuntime.AppDomainAppPath를 검사하여 어딘가에 잘못 설정되어 있는지 확인하십시오.

+0

방금 ​​체크했으나 "C : \ AppDir \ LiveApplication"을 올바르게 돌려줍니다. – Gomez0

관련 문제