.Net アプリケーションがあり、まったく同じコピーが 3 つあります。1 つはサーバーでの開発用で、テスト用とクライアントのサーバーでのライブ用です。サーバー上にPDFファイルを作成し、指定したフォルダに保存する必要があります。開発アプリとテスト アプリでは問題なく動作しますが、ライブでは機能しません。ファイルを保存する必要がある場合は、1 つ上のフォルダーにジャンプします。
server.mappath でしばらく遊んでみたところ、次の結果が得られました: ライブ アプリで、相対パスに "." 以外が含まれている場合。または ".." の場合、もう 1 レベル上がります (パスに "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\