0

.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\
4

1 に答える 1

0

Web サイトが C:\AppDir\LiveApplication ではなく C:\AppDir で実行されているようです。HttpRuntime.AppDomainAppPath を調べて、どこかに正しく設定されていないかどうかを確認しましたか。

于 2013-05-17T14:18:06.063 に答える