У меня есть HttpModule ASP.NET 4 (см. Код ниже). Когда путь URL начинается с «/1.0», я хочу, чтобы Cassini / IIS перешел на MyService.svc. Однако я не хочу показывать пользователю «MyService.svc» (т.е. не обновлять URL-адрес в браузере). Я хочу, чтобы пользователь видел «www.something.com/1.0».
Я был почти уверен, что RewriteUrl не должен изменять URL-адрес браузера, но в моем случае это так. Есть идеи, почему?
public void Init(HttpApplication context)
{
context.BeginRequest +=
delegate
{
HttpContext ctx = HttpContext.Current;
const string BasePath = "~/1.0";
if (path.StartsWith(BasePath, StringComparison.OrdinalIgnoreCase))
{
ctx.RewritePath("~/MyService.svc", "this/is/a/path", string.Empty, false);
}
};
}
P.S. Я не могу использовать маршрутизацию ASP.NET из-за точки / точки в URL-адресе (см. Идентификаторы маршрутов ASP.NET MVC с точкой).