В настоящее время мы ежедневно отправляем тысячи электронных писем нашим клиентам. Электронная почта содержит URL-адрес изображения с определенным идентификатором сообщения. Когда пользователь загружает это изображение, я отмечаю это сообщение как открытое в базе данных. Например:Стратегия плагина DiskCache для отслеживания изображений электронной почты с отслеживанием
http://cdn.mydomain.com/companylogos/{guid}.png?h=100&w=100&messageid=123
В этот момент для каждого запроса на изображение требуется, чтобы я получал байт [] изображения из кеша. Измените его размер. И верните его. Все это происходит в httphandler.
Я хотел бы воспользоваться преимуществами ImageResizer.net и плагина Disk Cache. Тем не менее, мне все еще нужно получить параметр MessageId-querystring. Поэтому я думаю об этом решении.
Расширение HttpModule
public class CustomInterceptModule : InterceptModule
{
protected override void HandleRequest(HttpContext context, HttpModuleRequestAssistant ra, IVirtualFile vf)
{
var messageIdParam = context.Request.QueryString["messageId"];
int messageId;
if (!string.IsNullOrWhiteSpace(messageIdParam) && int.TryParse(messageIdParam, out messageId))
{
// Do something with the ID here
}
base.HandleRequest(context, ra, vf);
}
}
ли этот метод по-прежнему создает высокую производительность, диск кэшированные результаты? Или я прерываю это, потому что я расширяю HttpModule, и я добавляю туда свою собственную логику.
Благодарим вас за быстрый ответ. Я тоже рассматривал этот вариант. Но я читал, что небольшие (например, 1px-изображения) могут быть заблокированы спамфильтрами. Хотя такие компании, как MailChimp, также используют этот параметр. Я обсужу это с моими коллегами. Если у меня появятся дополнительные вопросы, я отправлю их здесь. – JonHendrix