2015-08-02 3 views
0

Я не могу последовательно отключить отладчик VS в точке останова внутри ProcessRequest() класса, реализующего IHttpHandler. Он фактически остановился один раз и потом никогда не делал это снова ... Я работаю с Visual Studio 2013 и Windows, 10.Размещение точки останова внутри класса Реализация IHttpHandler

Вот мой пример кода:

MyImageHandler:

public class MyImageHandler : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     AwDAL.AwDAL dal = new AwDAL.AwDAL(); 

     int id = 100; 
     byte[] buffer = dal.GetProductPhotoByID(id); 

     context.Response.ContentType = "image/gif"; 
     context.Response.OutputStream.Write(buffer, 0, buffer.Length); 
    } 
    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

WebForm :

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Image runat="server" ImageUrl="~/MyImageHandler.ashx" /> 
    </div> 
    </form> 
</body> 
</html> 

Он загружает изображение без проблем:

enter image description here

+0

Если ваш appdomain выгружается (например, когда есть где-то в конвейере, где происходит перезагрузка), отладчик привязан к тому, что никогда не будет вызвано снова. – rene

+0

В любом случае я могу обнаружить разгрузку домена приложения? – jsanalytics

+0

В журнале событий регистрируется событие, которое должно отображаться в eventviewer. Может быть, отладчик поможет вам, если вы установите его для Break на каждом исключении. – rene

ответ

0

проблема происходит только с Microsoft Edge, но не IE или Firefox.

1

Если вы хотите остановить метод ProcessRequest, и точка останова будет загружена, но вы не ударите его, возможно, будет вызван другой обработчик.

Существует простой способ установить несколько точек останова в VS для всех обработчиков в вашем решении.

Перейти к debug-> Новый Breakpoint-> Перерыв в функции enter image description here

В следующем окне введите имя метода (или его часть), убедитесь, что флажок Использовать Intellisense проверяется и нажмите OK

VS будет искать все методы в вашем решении с тем же именем, и вы можете сразу же установить точки останова с помощью кнопки «Все».

enter image description here

Если вам просто нужно добавить точки останова для всех методов одного и того же класса, чтобы знать, какой из них называется, вы можете использовать некоторые VS extencions, которые могут сделать это для вас, например, это то, что вы можно сделать с Oz Код:

enter image description here

+0

Спасибо, это хорошая информация, поэтому я голосую. С тех пор я обнаружил, что проблема возникает только с Microsoft Edge, но не с IE или с Firefox. Спасибо. – jsanalytics