Diskuze: Jak nasimulovat 404
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Jenom ještě jedna změna v Application_Error nemám -
Server.ClearError();
Spíše mě fakt zajímá jestli je to správný přístup. Díky
Koukni zde, je to tam hezky vysvetleno i s priklady...
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-2.2
Nechapu ty minusy - stacilo se podivat na google.
Vytvor si na to ErrorController, ktery bude mit metodu Index a ta bude vracet view pro error a pak uprav web.config tak, aby odkazoval prave na ten controller.
Web.config
<customErrors mode="On" defaultRedirect="~/Error" >
<error statusCode="404" redirect="~/Error" />
</customErrors>
Je to treba i zde:
https://stackoverflow.com/a/41137288/3822488
Ten global.asax resit nemusis - jedine, ze bys to tam chtel logovat, ale to muzes udelat i na urovni controlleru, kdy si udelas bazovy controller, ktery bude obsahovat mechanismus pro logovani a z toho bazoveho budou nasledne dedit vsechny controllery.
Děkuji. Vím že je tu tahle možnost, ale přes Global/web.config mi to připadá lepší moje otázky zní zda je to tak v pořádku a jakým způsobem vyvolat chybu 404, protože když vyvolám return HttpNotFound(); Aplikace mi vůbec neskočí do Application_Error a ani nastavení ve webconfigu nezafunguje, ukáže se stránka viz. příloha na to jsem vůbec nedostal odpověď.
Všechny interní chyby (výjimky) lze zachytit pomocí filtru.
Project > FilterConfig.cs
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
Společně s Web.config
<customErrors mode="On" defaultRedirect="~/Error"></customErrors> // Error.cshtml v Shared/ složce.
ASP .NET runtime bude vždy vracet "přátelské" Error pohledy.
HttpNotFound() nevrací ASP .NET, ale IIS! Stejně tak jako statické soubory.
A proto, v případě neexistující akce (např. localhost:5000/Home/About):
<customErrors mode="On">
<error statusCode="404" redirect="~/404.html" />
</customErrors>
V případě neexistujícího statického souboru (např. localhost:5000/image.gif):
Project > Web.config
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" /> // Odstarní výchozí IIS 404.0 stránku
<error statusCode="404" path="404.html" responseMode="File"> // Tvá vlastní stránka
</httpErrors>
</system.webServer>
Omlouvám se, že jsem nereagoval dříve. Byl jsem mimo PC. Moc Vám děkuji
za rady.
Zobrazeno 10 zpráv z 10.