다음을 통해 공유


8부: 최종 페이지, 예외 처리 및 결론

작성자: Joe Stagner

Tailspin Spyworks는 .NET 플랫폼에 대해 강력하고 확장 가능한 애플리케이션을 만드는 것이 얼마나 간단한지 보여줍니다. ASP.NET 4의 새로운 기능을 사용하여 쇼핑, 체크 아웃 및 관리를 포함한 온라인 스토어를 구축하는 방법을 보여줍니다.

이 자습서 시리즈에서는 Tailspin Spyworks 샘플 애플리케이션을 빌드하기 위해 수행된 모든 단계를 자세히 설명합니다. 8부에서는 연락처 페이지, 페이지 정보 및 예외 처리를 추가합니다. 이것은 시리즈의 결론입니다.

연락처 페이지(ASP.NET 전자 메일 보내기)

ContactUs.aspx라는 새 페이지 만들기

디자이너를 사용하여 AjaxControlToolkit의 ToolkitScriptManager 및 편집기 컨트롤을 포함하도록 특별한 메모를 작성하는 다음 양식을 만듭니다. .

새 양식을 보여 주는 스크린샷

"제출" 단추를 두 번 클릭하여 코드 숨김 파일에서 클릭 이벤트 처리기를 생성하고 연락처 정보를 전자 메일로 보내는 메서드를 구현합니다.

protected void ImageButton_Submit_Click(object sender, ImageClickEventArgs e)
  {
  try 
    {
    MailMessage mMailMessage = new MailMessage();
    mMailMessage.From = new MailAddress(HttpUtility.HtmlEncode(TextBoxEmail.Text));
    mMailMessage.To.Add(new MailAddress("Your Email Here")); 

    // mMailMessage.Bcc.Add(new MailAddress(bcc));
    // mMailMessage.CC.Add(new MailAddress(cc));

   mMailMessage.Subject = "From:" + HttpUtility.HtmlEncode(TextBoxYourName.Text) + "-" + 
                                    HttpUtility.HtmlEncode(TextBoxSubject.Text);
   mMailMessage.Body = HttpUtility.HtmlEncode(EditorEmailMessageBody.Content); 
   mMailMessage.IsBodyHtml = true;
   mMailMessage.Priority = MailPriority.Normal;
   SmtpClient mSmtpClient = new SmtpClient();
   mSmtpClient.Send(mMailMessage);
   LabelMessage.Text = "Thank You - Your Message was sent.";
   }
 catch (Exception exp)
   {
   throw new Exception("ERROR: Unable to Send Contact - " + exp.Message.ToString(), exp);
   }
}

이 코드를 사용하려면 web.config 파일에 메일을 보내는 데 사용할 SMTP 서버를 지정하는 항목이 구성 섹션에 포함되어야 합니다.

<system.net>
        <mailSettings>
            <smtp>
                <network
                     host="mail..com"
                     port="25"
                     userName=""
                     password="" />
            </smtp>
        </mailSettings>
    </system.net>

페이지 정보

AboutUs.aspx라는 페이지를 만들고 원하는 콘텐츠를 추가합니다.

전역 예외 처리기

마지막으로 애플리케이션 전체에서 예외를 throw했으며 콜드가 웹 애플리케이션에서 처리되지 않은 예외를 유발하는 예기치 않은 상황이 있습니다.

웹 사이트 방문자에게 처리되지 않은 예외가 표시되지 않도록 합니다.

처리되지 않은 예외를 보여 주는 스크린샷

처리되지 않은 예외가 끔찍한 사용자 환경인 것 외에도 보안 문제가 될 수 있습니다.

이 문제를 해결하기 위해 전역 예외 처리기를 구현합니다.

이렇게 하려면 Global.asax 파일을 열고 다음과 같이 미리 생성된 이벤트 처리기를 확인합니다.

void Application_Error(object sender, EventArgs e)
 {
 // Code that runs when an unhandled error occurs
 }

다음과 같이 Application_Error 처리기를 구현하는 코드를 추가합니다.

void Application_Error(object sender, EventArgs e)
 {
    Exception myEx =  Server.GetLastError();
    String RedirectUrlString = "~/Error.aspx?InnerErr=" + 
        myEx.InnerException.Message.ToString() + "&Err=" + myEx.Message.ToString();
    Response.Redirect(RedirectUrlString);
 }

그런 다음 Error.aspx라는 페이지를 솔루션에 추가하고 이 태그 조각을 추가합니다.

<center>
  <div class="ContentHead">ERROR</div><br /><br />
  <asp:Label ID="Label_ErrorFrom" runat="server" Text="Label"></asp:Label><br /><br />
  <asp:Label ID="Label_ErrorMessage" runat="server" Text="Label"></asp:Label><br /><br />
</center>

이제 Page_Load 이벤트 처리기에서 Request 개체에서 오류 메시지를 추출합니다.

protected void Page_Load(object sender, EventArgs e)
{
    Label_ErrorFrom.Text = Request["Err"].ToString();
    Label_ErrorMessage.Text = Request["InnerErr"].ToString();
}

결론

ASP.NET WebForms를 사용하면 데이터베이스 액세스, 멤버 자격, AJAX 등을 사용하여 정교한 웹 사이트를 쉽게 만들 수 있습니다. 꽤 빨리.

이 자습서를 통해 고유한 ASP.NET WebForms 애플리케이션 빌드를 시작하는 데 필요한 도구를 제공해 주셨으면 합니다.