Как мне «плавно» отформатировать HttpHandler URI? - PullRequest
1 голос
/ 26 сентября 2008

Я просто вмешиваюсь в способы веб-службы RESTful в C # с использованием ASP.Net 2.0 и сумел (через библиотеку классов, ссылку на dll, созданную первым и некоторые настройки моего web.config) вытолкнуть URI формат, например, так:

http: // localhost / DevelopmentProject / testhandler /? Input = thisismyinput

Который непривычно просто возвращает ввод в виде фрагмента текста с просветляющим префиксом «Ваш ввод был:»

У меня сложилось впечатление, что я мог бы сделать URI еще более привязанным к чему-то еще в духе:

http: // localhost / DevelopmentProject / testhandler / thisismyinput

и имеют тот же результат, но понятия не имеют, как избавиться от надоедливых "? Input ="

Запись в разделе httphandlers моего web.config (пробелы добавлены, поэтому отображается код):

Я использую IIS 5.1 на локальном компьютере, не вызовет ли это проблемы?

По существу, где я иду не так?

Спасибо.

Ответы [ 5 ]

1 голос
/ 26 сентября 2008

Одним из решений является использование UrlRewriting для перезаписи URL на то, что вам нужно.

Я использую http://urlrewriter.net/, чтобы сделать все мои переписывания, и вы можете настроить что-то подобное в вашем сценарии

<rewriter>
   <rewrite 
     url="DevelopmentProject/testhandler/([\w]+)" 
     to="DevelopmentProject/testhandler/?input=$1" />
</rewriter>

Это будет оставаться "http: // localhost / DevelopmentProject / testhandler / thisismyinput" в адресной строке браузера, но обрабатываться как "http: // localhost / DevelopmentProject / testhandler /? Input = thisismyinput"

0 голосов
/ 25 мая 2009

Проверьте значение Request.PathInfo в функции ProcessRequest вашего обработчика. с URL-адресом вроде http://localhost/DevelopmentProject/testhandler/thisismyinput.

Если этого не происходит, убедитесь, что IIS 5.1 направляет ВСЕ запросы на aspnet_isapi.dll. (Хотя, похоже, это уже есть) Это кнопка «Конфигурация ...»> вкладка «Сопоставления приложений» в виртуальном каталоге IIS.

0 голосов
/ 31 марта 2009

Измените вашу конфигурацию с: чтобы:

0 голосов
/ 26 сентября 2008

Я вроде обманул.

Попытка:

Моя статья о том, как мне это удалось

0 голосов
/ 26 сентября 2008

Вы можете реализовать перезапись URL, используя что-то вроде URLRewriter.net Это позволит вам использовать синтаксис, который вы упомянули.

...