0

오류를 잡아서 오류 세부 정보를 데이터베이스에 저장하고 고전 ASP에서 사용자 지정 오류 페이지로 리디렉션하는 방법은 무엇입니까?오류를 잡아서 오류 세부 정보를 데이터베이스에 저장하고 기존 ASP의 사용자 정의 오류 페이지로 리디렉션하는 방법은 무엇입니까?

내 웹 사이트의 모든 페이지에 ASP 페이지를 포함시켜야하고 오류가 발생하면 오류 세부 사항이 데이터베이스에 저장되거나 메일 ID로 전송되고 사용자 정의 오류 페이지로 리디렉션됩니다. 제발 나를 도와주세요.

답변

0

기존 ASP에는 try/catch가 없습니다. 또한 VBscript를 기본적으로 사용하며 위의 대답은 C# 일 것입니다. 다음은 수행하려는 작업에 대한 VBscript ASP입니다.

<% 
Set conn = Server.CreateObject("ADODB.Connection") 
SQL_server_string = "Provider=SQLOLEDB; Data Source=myMachine; Initial Catalog=pubs; User ID=sa; Password=pw" 
ConnectionString = SQL_server_string 
conn.Open ConnectionString 

s = "INSERT INTO" 
s = s & " tablename " 
s = s & "(" 
s = s & " fieldname1 " 
s = s & ",fieldname2 " 
s = s & ") " 
s = s & "VALUES" 
s = s & "(" 
s = s & "'" & stringvalue1 & "'" 
s = s & ",'" & stringvalue2 & "'" 
s = s & ") " 

conn.execute(s) 
if (err.number<>0) then 
m = "error on page ___ line ____<br>" 
m = m & "error number: " & err.number & "<br>" 
m = m & "error description: " & err.description & "<br>" 
m = m 7 "sql: " & s & "<br>" 
session("msg") = m 
set conn=nothing 
response.redirect("error_report.asp") 
end if 
'got past error checking... do stuff... 
%> 
+0

이 정보는 많은 도움이됩니다. –

0

자바 스크립트에서 catch catch 메서드를 사용하여 오류를 catch하십시오. catch 블록 내에서 데이터를 서버에 게시하십시오. 서버에는 익숙한 aspx 페이지 또는 PHP 페이지가 있습니다. 이 게시물에서 aspx/php 파일과 DB에 삽입 된 파일의 매개 변수로 삽입 할 데이터를 가져옵니다.

<script> 
    var txt=""; 
    function ProcessData() 
    { 
     try 
     { 
      .... 
     } 
    catch(err) 
     { 
      var message = err.message; 

      $ajax({ 
        type:"POST", 
        url:"Errorhandler.aspx/InsertErrordetails", 

        data:"{error: '" + message + "'}", 

        clientType:"application/json; charset=utf-8", 
        datatype:"json", 
        async: false, 
        success: function() { alert("success"); }, 
        error: function(){alert("error");} 
        }); 


    } 
} 
</script> 

서버 측 코드는 다음과 같이 표시됩니다.

public static void InsertErrordetails(string error) 
{ 
    SqlConnection Con = new SqlConnection(@"Server=db;Integrated Security=True;" +   "Database=userdb"); 

    string query = "INSERT INTO [LogTable]([Message])" + 
      "VALUES (@error)"; 

    SqlCommand cmd = new SqlCommand(query, Con); 
    cmd.Parameters.AddWithValue("@Message", error); 

    try 
    { 
     Con.Open(); 

     cmd.ExecuteNonQuery(); 
    } 
    catch (Exception) 
     { 
     throw; 
     } 
    finally 
     { 
     Con.Close(); 
     } 

}