/ / iis7 / asp.net nie pokazuje modyfikacji pliku - asp.net, iis-7

iis7 / asp.net nie pokazuje modyfikacji pliku - asp.net, iis-7

Obecnie przeniosłem mój asp.net 4.0 na IIS7 (serwer Windows 2008). Jednak użyłem folderu testowego do przechowywania plików z katalogu na komputerze lokalnym; kiedy przeniosłem plik aspx i zmieniłem kod (na serwerze), aplikacja ciągle zgłasza ten błąd

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".

Mam tylko dwie funkcje, które zajmują się katalogami i żadna z nich nie wskazuje już na ten katalog testowy.

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);
}
}

Próbowałem skomentować wszystko w tym pliku aspx, ale okazało się, że ten problem nadal występuje. Wykonałem issrestart z linii cmd i nic się nie zmieniło. Każda pomoc będzie mile widziana.

Odpowiedzi:

0 dla odpowiedzi № 1

To jest problem z wdrożeniem.Twój komunikat o błędzie wyraźnie nie jest zsynchronizowany z bieżącym kodem. Rzeczywisty kod uruchamiany z usług IIS musi pochodzić z nieaktualnego pliku binarnego. Na początek usunąłbym wszystkie biblioteki DLL z katalogu bin na serwerze i ponownie wdrożył nowe biblioteki DLL. Może również wymagać odświeżenia plików aspx w zależności od typu projektu, którego używasz.

Kiedy już to załatwisz, wezmęjeszcze raz przyjrzyj się, jak wdrażasz aktualizacje w swojej witrynie. Visual Studio i IIS 7 oferują kilka zgrabnych opcji wdrażania, jeśli chcesz iść w ten sposób. Możesz także wdrożyć za pośrednictwem Git lub SVN. Jednak wdrożenie polegające na ręcznym zastępowaniu pojedynczych plików doprowadzi Cię do rodzaju problemów, z którymi obecnie się borykasz.


0 dla odpowiedzi nr 2

Gdyby realFolder katalog istnieje w katalogu głównym twojej aplikacji internetowej lub sam jest rootem, a następnie użyj Server.MapPath metoda uzyskania rzeczywistej ścieżki do folderu wirtualnego.

Na przykład,

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 dla odpowiedzi № 3

Ponieważ w kodzie nie odwołujesz się do ścieżki, prawdopodobnie znajduje się ona w jednym z plików konfiguracyjnych, HttpModules, Global.asax lub w bibliotece DLL.

Jakich innych komponentów używasz?

Czy przed przeniesieniem go na serwer próbowałeś uruchomić witrynę w usługach IIS na komputerze lokalnym? Może dołącz debugger i zobacz, gdzie wyrzucany jest błąd?

Och, FWIW, tożsamość IIS AppPool będzie musiała mieć uprawnienia do odczytu dla twojego C:/***/whatever teczka.