, поэтому я пытаюсь создать ситуацию, которая позволяет нам случайным образом тестировать две версии части нашего приложения. Я создал реализацию IHttpHandler (C#, asp.net webforms 4, проект веб-сайта), и когда запрос приходит в наш «магазин», я оцениваю, должны ли они видеть магазин или магазинB.IHttpHandler реализация
Вот реализация обработчика:
public class ShopRequestHandler : IHttpHandler, IReadOnlySessionState
{
public ShopRequestHandler() { }
public void ProcessRequest(HttpContext context)
{
var originalRequest = context.Request.RawUrl;
var process = originalRequest.Contains("shop");
if (process)
{
if (UsingShopB(context))
{
var newRequest = originalRequest.Replace("shop", "shopB");
context.Response.Redirect(newRequest, false);
}
else
{
context.Response.Redirect(originalRequest, false);
}
}
}
public bool IsReusable
{
get { return false; }
}
private bool UsingShopB(HttpContext context)
{
HttpCookie cookie = context.Request.Cookies["UseShopB"];
if (cookie == null)
{
var rand = new Random();
var val = rand.Next(1, 10);
context.Response.AppendCookie(val%2 == 0
? new HttpCookie("UseShopB", true.ToString())
: new HttpCookie("UseShopB", false.ToString()));
}
var httpCookie = context.Response.Cookies["UseShopB"];
return httpCookie != null && Boolean.Parse(httpCookie.Value);
}
}
Проблема не с перенаправлением в магазин б, который прекрасно работает. Это действительно так, когда мне нужна обычная версия магазина. Я получаю сумасшедший цикл запросов и ошибку, заявляющую, что страница не может быть отображена. Мне кажется, что я не делаю ничего другого, когда магазин запрашивается. Это когда ShopB запрашивается, чтобы изменения произошли. Тупик. Должен ли я использовать RawUrl? Что мне не хватает? Это проблема производства, поэтому любая помощь будет огромной. и просто для повторного итерации, когда случайный выбор - shopB, он отлично работает. гррр.
Я просто хотел добавить, что, когда я изменяю путь, все работает нормально, мне нужна помощь в том, как оставить исходный запрос в одиночку, когда мне не нужно ничего изменять. Помогите!
Спасибо -Sean
Забыл упомянуть, что мы в основном копировали магазин в каталог под названием shopB. У меня есть фильтр, то есть путь в разделе обработчиков правильной конфигурации. Мы хотели бы визуально модифицировать shopB и получать отзывы от наших клиентов. Спасибо. – Sean