2013-05-17 3 views
0

У нас есть приложение .Net, и у нас есть три точно такие же его копии. Один для разработки на нашем сервере, а также тестовый и живой на сервере нашего клиента. Мы должны создать pdf-файлы на сервере и сохранить их в указанной папке. Он отлично работает на dev и тестовых приложениях, но не работает. Когда он должен сохранить файл, он перепрыгивает на одну папку вверх.Server.MapPath() пропустит один уровень

Я играл некоторое время с сервером.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

 Смежные вопросы

  • Нет связанных вопросов^_^