/ / iis7 / asp.net не показва модификация на файл - asp.net, iis-7

iis7 / asp.net не показва модификация на файл - asp.net, iis-7

В момента преместих asp.net 4.0 уеб приложение към IIS7 (Windows 2008 сървър). Използвах тестова папка за задържане на файлове от директория на localhost машина, обаче; когато преместих aspx файла и промених кода (на сървъра), приложението продължава да хвърля тази грешка

Could not find a part of the path "C:Users***DesktopTestFolder".
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****DesktopTestFolder".

Имам само две функции, които се занимават с директории и нито една функция не сочи към тази тестова директория.

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 линия и нищо не се промени. Всяка помощ ще бъде оценена.

Отговори:

0 за отговор № 1

Това е проблем с внедряването. Вашето съобщение за грешка очевидно не е синхронизирано с текущия ви код. Действителният код, който се стартира от IIS, трябва да идва от остарял двоичен файл. Като начална точка бих изтрил всички DLL файлове в бин директорията си на сървъра и ще пренасочвам пресни DLL файлове. Възможно е също така да се наложи да обновите aspx файловете си в зависимост от типа на проекта, който използвате.

След като разберете това, щях да вземаоще един поглед върху това как внедрявате актуализации на вашия сайт. Visual Studio и IIS 7 предлагат някои опции за внедряване, ако искате да продължите по този начин. Също така, можете да внедрите чрез Git или SVN. Но внедряването чрез ръчна подмяна на единични файлове ще ви доведе до типа проблеми, които срещате в момента.


0 за отговор № 2

ако realFolder директория съществува под корен на вашето уеб приложение или самият той е root след това използвайте 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");

0 за отговор № 3

Тъй като "не препращате пътя към кода си, той вероятно е или в някой от конфигурационните ви файлове, HttpModules, Global.asax или може би DLL.

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

Преди да го преместите на сървър, пробвали ли сте да стартирате сайта под IIS на вашата локална машина? Може да прикачите грешка и да видите къде е хвърлена грешката?

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