Visual Studio 2019 ์์ ์์ฑํ ASP.NET Web Form ์ฌ์ดํธ ํ ํ๋ฆฟ์ผ๋ก ASP.NET 4.0 WebForms ํ๋ก์ ํธ Global.asax ํ์ผ์ ๋ถ์ํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.
Global.asax ์ฝ๋ ๋ถ์
ASP.NET WebForms์์ Global.asax๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ผ์ดํ์ฌ์ดํด์ ๊ด๋ฆฌํ๋ ํต์ฌํ์ผ์ ๋๋ค.์ด ํ์ผ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์์, ์ข ๋ฃ, ์๋ฌ ์ฒ๋ฆฌ, ์ธ์ ์์/์ข ๋ฃ ๋ฑ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
1. Application_Start() → ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋ ๋ ์คํ๋๋ ์ฝ๋
void Application_Start(object sender, EventArgs e)
{
// ์ ํ๋ฆฌ์ผ์ด์
์์ ์ ์คํ๋๋ ์ฝ๋
AuthConfig.RegisterOpenAuth();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
โ ์คํ์์ :
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ์ ์์๋ ๋ ํ ๋ฒ๋ง ์คํ๋จ
- ์๋ฒ๊ฐ ์์๋๊ฑฐ๋, IIS์์ ์ ํ๋ฆฌ์ผ์ด์ ํ์ด ์ฌ์์๋ ๋ ์คํ๋จ
- ์ฌ์ดํธ์ ์ฒซ ๋ฒ์งธ ์์ฒญ์ด ์์ ๋ ์คํ๋จ
โ ์คํ๋๋ ์์ :
- RouteConfig.RegisterRoutes(RouteTable.Routes); → URL ๋ผ์ฐํ ์ ์ค์ ํ๋ ํจ์ ํธ์ถ
- ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์บ์ ์ด๊ธฐํ, ์ ์ญ ๋ณ์ ์ค์ ๋ฑ์ ์์ ์ด ์ถ๊ฐ๋ ์ ์์
2. RouteConfig.cs ํ์ผ → URL ๋ผ์ฐํ ์ค์
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.Membership.OpenAuth;
using System.Web.Routing;
using Microsoft.AspNet.FriendlyUrls;
namespace WebSite1
{
public static class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("HomeRoute", "home", "~/Home.aspx");
routes.MapPageRoute("ProductRoute", "prodictes", "~/ProductDetails.aspx");
routes.MapPageRoute("ContactRoute", "contacts", "~/Contact.aspx");
//routes.EnableFriendlyUrls();
}
}
}
ASP.NET WebForm์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก .aspx ํ์ผ์ ์ง์ ์ ๊ทผํ๋ ๋ฐฉ์์ด์ง๋ง, MapPageRoute()๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ URL์ ์ค์ ํ ์ ์์ต๋๋ค.
๐ ์ค์ ๋ ๋ผ์ฐํ | ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ URL | ์ค์ ํธ์ถ๋๋ ํ์ด์ง |
HomeRoute | http://localhost:3000/home | Home.aspx |
โ routes.MapPageRoute()์ ์ญํ
- routes.MapPageRoute("์ด๋ฆ", "URL ํจํด", "๋์๋๋ ํ์ด์ง");
- /contact ๊ฒฝ๋ก๋ก ๋ค์ด์ค๋ฉด ~/Contact.aspx๋ก ์ฐ๊ฒฐ
3. Application_End() → ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ ์คํ
void Application_End(object sender, EventArgs e)
{
// ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ ์ ์คํ๋๋ ์ฝ๋
}
โ ์คํ์์ :
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ ๋ ์คํ๋จ
- ์๋ฒ๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ IIS์์ ์ ํ๋ฆฌ์ผ์ด์ ํ์ด ์ค์ง๋ ๋ ์คํ๋จ
- ์ฌ์ดํธ์ ๋ง์ง๋ง ์์ฒญ ํ ์ผ์ ์๊ฐ์ด ์ง๋์(๊ธฐ๋ณธ 20๋ถ), ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋นํ์ฑ ์ํ๊ฐ ๋ ๋
โ ์ฃผ๋ก ํ๋ ์์ :
- ๋ก๊ทธ ๊ธฐ๋ก (Log Out๊ธฐ๋ก)
- ๋ฐ์ดํฐ ์ ๋ฆฌ(์บ์, ์ธ์ ์ญ์ )
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํด์
4. Application_Error() → ์ ์ญ ์์ธ ์ฒ๋ฆฌ
void Application_Error(object sender, EventArgs e)
{
// ์ฒ๋ฆฌ๋์ง ์์ ์ค๋ฅ ๋ฐ์ ์ ์คํ๋๋ ์ฝ๋
}
โ ์คํ์์ :
- ์ฌ์ดํธ์์ Unhandled Exception(์์ธ) ์ด ๋ฐ์ํ๋ฉด ์๋ ์คํ๋จ
โ ์ฃผ์ ์ญํ :
- ๋ชจ๋ ์์ธ๋ฅผ ์บ์นํ์ฌ ๋ก๊น (log ๊ธฐ๋ก)
- ์ฌ์ฉ์์๊ฒ ์๋ฌ ํ์ด์ง ์ ๊ณต
โณ ์์ธ๋ฅผ ๋ก๊น ํ๊ณ 500์๋ฌ ํ์ด์ง๋ก ์ด๋
์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์์ ์ค๋ฅ๋ฅผ ๋ง๋๋ฉด ErrorPage.aspx ๋ก ์๋ด๋๋๋ก ์ค์
void Application_Error(object sender, EventArgs e)
{
// ์ฒ๋ฆฌ๋์ง ์์ ์ค๋ฅ ๋ฐ์ ์ ์คํ๋๋ ์ฝ๋
Exception ex = Server.GetLastError();
System.Diagnostics.Debug.WriteLine("์๋ฌ๋ฐ์: " + ex.Message);
Server.ClearError();
Response.Redirect("~/ErrorPage.aspx");
}
5. ์ต์ข ์ ๋ฆฌ
Global.asax ํ์ผ ์๋ฒฝ ์ดํด โ ๐ฅ
์ด๋ฒคํธ | ์คํ ์์ | ์ฃผ์ ์ญํ |
Application_Start | ์ ํ๋ฆฌ์ผ์ด์ ์์ ์(ํ ๋ฒ๋ง) | ์ด๊ธฐํ, ๋ผ์ฐํ ์ค์ |
Application_End | ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ | ๋ก๊ทธ ์ ์ฅ, ์ ๋ฆฌ ์์ |
Application_Error | ์ค๋ฅ ๋ฐ์ ์ | ์ค๋ฅ ๋ก๊น , ์๋ฌํ์ด์ง ์ด๋ |
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ASP.NET] PC/๋ชจ๋ฐ์ผ ์ ์ ๊ตฌ๋ถ - Request.UserAgent & IndexOf (0) | 2025.03.28 |
---|---|
[C#] ASP.NET MasterPage ๋? ๊ณตํต ๋ ์ด์์ ์ ์ํ๊ธฐ (0) | 2025.03.28 |
[C#] ASP.NET์ TCP ์ฐ๊ฒฐ ์ค์ (0) | 2025.02.17 |
[C#] var ํค์๋์ ์๋ฌต์ ํ์ ์ถ๋ก (0) | 2025.02.16 |
[C#] ASP.NET 4.0 ๋ ๊ฑฐ์ ์ฝ๋ web.config ํ์ผ ๋ถ์ (0) | 2024.12.30 |