Request.RawURL не установлен в default.aspx в корне приложения - PullRequest
1 голос
/ 24 января 2012

Я только что обновил свое приложение ASP.NET с .NET 3.5 до 4.0 и обнаружил, что Request.RawURL установлен в «/» при запросе документа по умолчанию, default.aspx, через http://mysite.com/. In .NET 3.5, Request.RawURL будет установлен в "/default.aspx".

Есть ли способ включить это поведение .NET 3.5 в 4.0?

Я попытался отключить URL-адреса без расширений через реестр. Я также просмотрел документ ASP.NET 4.0 Breaking Changes и установил атрибут действия тега формы, однако просмотр источника страницы показывает, что значение, установленное для атрибута действия, не принимается и возвращаясь к "/".

В настоящее время работает в интегрированном режиме IIS 7.5 и Win7.

1 Ответ

1 голос
/ 25 января 2012

Действительно, я могу воспроизвести поведение при переключении между .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

Возможно, вы можете подробнее рассказать о вашем приложении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...