2016-11-11 1 views
0

Im new to C# ASP.net. Я использую Monodevelop в Ubuntu для создания простого WebForm.Page_Error не показывает Unhandled Exception в вызове WebMethod от Javascript

Default.aspx.cs:

public partial class Default : System.Web.UI.Page 
{ 
    protected void Page_Error(object sender, EventArgs e) 
    { 
      Exception Ex = Server.GetLastError(); 
      Console.WriteLine(Ex.Message); 
    } 


    [System.Web.Services.WebMethod] 
    public static string TestUnhandledException() 
    { 
     throw new Exception("abc"); 
    } 
} 

default.aspx

<%@ Page Language="C#" Inherits="MyFirstWebForm.Default" %> 
<!DOCTYPE html> 
<html> 

<head runat="server"> 
    <title>Default</title> 
    <script> 
     function Test() { 
      PageMethods.TestUnhandledException(OnSuccessCallback, OnFailureCallback); 
     } 

     function OnSuccessCallback(res) {} 
     function OnFailureCallback() {} 
    </script> 

</head> 

<body> 
    <form id='form1' runat='server'> 
     <asp:scriptmanager enablepagemethods="true" id="scpt" runat="server"> </asp:scriptmanager> 
     <asp:button id="Button1" runat="server" text="Initialize" OnClientClick='Test();return false;'/> 
    </form> 

</body> 
</html> 

Метод TestUnhandledException() работает хорошо, но, как я отладка, нет никакого сообщения исключения шоу и Page_Error() никогда не работает.

Пропустить что-нибудь? Как я должен регистрировать необработанное исключение в веб-форме ASP.NET? Я ценю любую помощь.

Обновление: Бросок исключения с помощью Page_Load пойман на странице Page_Error, но тот, который выбрал [WebMethod], не работает.

ответ

0

Кажется, что не просто поймать необработанное исключение, брошенное WebMethod. Из этого post:

вы не можете просто добавить несколько строк кода в файл Global.aspx.cs в метод Application_Error обработчик событий для регистрации необработанных исключений , поскольку трубопровод ASP.NET Web Services обходит это событие, так что может вернуть все исключения обратно вызывающему абоненту.

Так, вероятно, самый простой способ, чтобы окружать метод с примерки поймать блок, как показано на посту

0

Вы проверили внутреннее исключение?. ваше сообщение об исключении должно быть там

+0

Проблема в том, как я отладки, Page_Error() никогда не выполняется в первую очередь –

 Смежные вопросы

  • Нет связанных вопросов^_^