ASP.Net 4.0 - Как получить доступ к RouteData из ASHX?

Мой веб-сайт имеет обработчик (FileDownload.ashx), который имеет дело со всеми запросами загрузки файла.

Я недавно переместил свой сайт в ASP.NET 4.0, и он теперь использует маршрутизацию экстенсивно. Все хорошо работает при контакте с запросами страницы (aspx), но это не работает с моим обработчиком - я встречаюсь со следующей ошибкой:

Введите '.Handlers. FileDownload' не наследовался 'Системе. Сеть. UI.Page'.

Это имеет смысл, поскольку маршрутизация только реализована на странице.

Какие шаги я должен сделать, чтобы смочь использовать маршрутизацию и мой .ashx вместе? Я хочу смочь извлечь RouteData.Values от маршрута.

public class FileDownload : IHttpHandler
{
}
7
задан p.campbell 6 September 2013 в 19:36
поделиться

2 ответа

В конце концов, мне нужно было создать обработчик, но это оказалось достаточно просто: http://haacked.com/archive/2009/11/04/routehandler-for-http-handlers.aspx

.Net 4.0 изначально не поддерживает обработку маршрутов для IHttpHandlers.

4
ответ дан 7 December 2019 в 12:14
поделиться

Похоже на проблему с IIS.

Работает ли это, если вы попытаетесь использовать сервер разработки ASP.NET (Cassini)?

Если вы используете IIS6, вам нужно будет использовать подстановочные символы сопоставления приложений - см. здесь .

Вам также нужно будет создать маршруты в соответствии с любой страницей ASPX, например:

public static void RegisterRoutes(RouteCollection routes)
{
    string[] allowedMethods = { "GET", "POST" };
    HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods);

    Route fileDownloadRoute = new Route("{foo}/{bar}", new FileDownload());
    fileDownloadRoute.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } };

    routes.Add(fileDownloadRoute);
}

Вы это сделали? Если это так, я бы сказал, что ваша проблема определенно связана с IIS.

См. здесь , где есть хорошая статья о маршрутизации ASP.NET 4 для IIS6 и IIS7.

Удачи!

1
ответ дан 7 December 2019 в 12:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: