По этому:
Всякий раз, когда я использую HttpHandler для
отображать изображения на моем местном, только
часть изображений отображается на каждом
загрузка страницы.
Вы имеете в виду, что одно и то же изображение появляется в местах, где должны появляться разные изображения, или что некоторые изображения появляются, а некоторые вообще не отображаются?
В вашем случае разница при переключении isReusable
в true заключается в том, что new Business();
будет вызываться один раз для нескольких изображений. Если isReusable
равно false, new Business();
будет вызываться один раз для каждого изображения. Это означает, что если у вас есть несколько изображений на странице, new Business();
будет вызываться несколько раз для этой конкретной страницы.
Также я настоятельно рекомендую изменить это:
if (context.Request.QueryString["ListingID"] != null)
{
int listingID = Convert.ToInt32(context.Request.QueryString["ListingID"]);
с:
string listingIdParam = context.Request.QueryString["ListingID"];
if (listingIdParam != null)
{
int listingID = Convert.ToInt32(listingIdParam);
Это избавит вас от исключений нулевых ссылок, которые обычно появляются только при большой нагрузке. Кроме того, вышеприведенное предотвратит подачу неправильного изображения в запрос, особенно когда isReusable имеет значение true.
Я не могу точно определить, в чем заключалась проблема, но могу с уверенностью сказать, что установка флага isReusable была просто обходным путем и не решает вашу проблему. Также, когда подобная проблема воспроизводима только в определенной среде, это означает, что это либо проблема с потоками, либо есть некоторая разница в обработке запросов (другой веб-сервер - IIS6, IIS7, сервер разработки).
Может быть, публикация класса Business
, и его конструктор может пролить немного света.
Также я предлагаю реализовать какую-либо регистрацию ошибок, чтобы перехватывать исключения в обработчике и просматривать их.