iis7 / asp.net не показывает изменение файла - PullRequest
0 голосов
/ 07 января 2012

В настоящее время я перенес веб-приложение asp.net 4.0 на IIS7 (сервер Windows 2008). Однако я использовал тестовую папку для хранения файлов из каталога на локальном хосте; когда я переместил файл aspx и изменил код (на сервере), приложение продолжает выдавать эту ошибку

Could not find a part of the path 'C:\Users\***\Desktop\TestFolder\'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\****\Desktop\TestFolder\'.

У меня есть только две функции, которые работают с каталогами, и ни одна из них больше не указывает на этот тестовый каталог.

private int checkForFileNumbers()
{
    string url = "c:/***/realfolder";
    DirectoryInfo directory = new DirectoryInfo(url);
    return directory.GetFiles().Length;
}

private void checkForFiles()
{
    string url = "c:/***/realfolder";
    DirectoryInfo dir = new DirectoryInfo(url);
    foreach (FileInfo files in dir.GetFiles())
    {
        FileDropDownList.Items.Add(files.Name);
    }
}

Я попытался закомментировать все в этом файле aspx, только чтобы обнаружить, что эта проблема все еще возникает. Я выполнил issrestart из строки cmd, и ничего не изменилось. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 07 января 2012

Поскольку вы не ссылаетесь на путь в своем коде, он, вероятно, находится в одном из ваших файлов конфигурации, HttpModules, Global.asax или, возможно, в DLL.

Какие другие компоненты вы используете?

Перед перемещением на сервер пытались ли вы запустить сайт под IIS на локальном компьютере?Может быть, присоедините отладчик и посмотрите, где выдается ошибка?

О, FWIW, удостоверение IIS AppPool должно иметь разрешение на чтение для вашей папки C:/***/whatever.

0 голосов
/ 09 января 2012

Это проблема развертывания.Ваше сообщение об ошибке явно не синхронизировано с вашим текущим кодом.Фактический код, который запускается из IIS, должен исходить из устаревшего двоичного файла.В качестве отправной точки я хотел бы удалить все библиотеки DLL в каталоге bin на сервере и повторно развернуть новые библиотеки DLL.Может также потребоваться, чтобы вы обновили свои aspx-файлы в зависимости от того, какой тип проекта вы используете.

Как только вы разберетесь с этим, я бы еще раз посмотрел, как вы развертываете обновления на своем сайте.Visual Studio и IIS 7 предлагают несколько удобных вариантов развертывания, если вы хотите пойти по этому пути.Кроме того, вы можете развернуть через Git или SVN.Но развертывание путем замены отдельных файлов вручную приведет вас к типу проблем, с которыми вы сейчас сталкиваетесь.

0 голосов
/ 07 января 2012

Если каталог realFolder существует в корневом каталоге вашего веб-приложения или сам является корневым, то для получения реального пути к виртуальной папке используйте метод Server.MapPath.

Например,

String rootPath=Server.MapPath("~"); // It will return real path of current web-app's root.
//OR - In case if want use Server property from separate code  file.
String rootPath=HttpContext.Current.Server.MapPath("~/testFolder");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...