Мое приложение использует правило HttpErrors
в web.config
для перенаправления 404-х в пользовательский HttpHandler
:
<handlers>
<add name="MyHandler" path="/default.aspx" verb="*" type="MyHandler.HttpHandler" />
</handlers>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<remove statusCode="405" />
<error statusCode="404" path="/default.aspx" responseMode="ExecuteURL" />
<error statusCode="405" path="/default.aspx" responseMode="ExecuteURL" />
</httpErrors>
В .NET 2.0 это работает нормально. Теперь я хочу преобразовать свое приложение в .NET 4.0, и это вызывает проблемы.
Проблема в том, что когда запрос направляется в HttpHandler, я проверяю значение Request.Path
, чтобы определить, какую страницу я просматриваю.
В .NET 2.0 Request.Path
будет иметь значение, т.е. /page/subpage/item
. В .NET 4.0 это относится к /default.aspx
.
Проверка Request
не дает мне никаких других свойств, которые выглядят как что-то, что я мог бы использовать - такие вещи, как RawUrl
и Url
, все включают строки запросов и другие ненужные ненужные мне вещи. Я просто хочу текущий путь.
Как я могу решить эту проблему?