Действительно, я могу воспроизвести поведение при переключении между .NET 2.0 и .NET 4.0 - оба .NET 2.0 и 3.5 совместно используют одну и ту же среду CLR2 общего языка с дополнениями к библиотеке базовых классов (BCL) для более высоких версий .NET. С .NET 4.0 пришла CLR4, и, похоже, именно в этом и заключается разница. Я никогда не замечал этого раньше!
Я считаю, что новое поведение является правильным, поскольку RawUrl
отражает путь URL, который был фактически запрошен. Трудно понять вашу точную потребность, но я думаю, что вы могли бы попробовать вместо этого использовать Request.Path
.
URL: http://example.com/
Request.RawUrl: /
Request.Path: /default.aspx
Возможно, вы можете подробнее рассказать о вашем приложении?