如何"平稳"格式化HttpHandler URI?

时间:2020-03-06 14:46:40  来源:igfitidea点击:

我只是在Cusing ASP.Net 2.0中干预RESTful Web服务的方式,并且已经设法(通过类库,对前者生成的dll的引用以及对我的web.config的一些调整)来哄骗URI。格式如下:

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

只需将输入作为带有启发性前缀" Your Input was:"的文本返回即可,

我的印象是,我可以使URI进一步深化到以下方面:

http:// localhost / DevelopmentProject / testhandler / thisismyinput

并具有相同的结果,但不知道如何摆脱讨厌的"?input ="

我的web.config的httphandlers部分的条目是(添加了空格,以便显示代码):

<添加动词=" *" path =" testhandler / *" type =" HandlerLib.testhandler,HandlerLib" />

我在本地计算机上运行IIS 5.1,这会带来问题吗?

本质上我要去哪里错了?

谢谢。

解决方案

我们可以使用URLRewriter.net之类的方法实现URL重写
这样一来,我们就可以使用所提到的语法。

一种解决方案是使用UrlRewriting将Url重写为所需的内容。

我使用http://urlrewriter.net/进行所有重写,并且可以在方案中设置类似的内容

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

这将在浏览器地址栏中保留为" http:// localhost / DevelopmentProject / testhandler / thisismyinput",但仍将处理为" http:// localhost / DevelopmentProject / testhandler /?input = thisismyinput"

我有点被骗。

尝试:

我关于我如何解决它的文章

从以下位置更改配置:
<添加动词="" path =" testhandler /" type =" HandlerLib.testhandler,HandlerLib" />
到:
<添加动词="" path =" testhandler / *" type =" HandlerLib.testhandler,HandlerLib" />

在处理程序的ProcessRequest函数中检出Request.PathInfo的值
使用类似http:// localhost / DevelopmentProject / testhandler / thisismyinput的URL。

如果这样做不起作用,请确保IIS 5.1将所有请求都路由到aspnet_isapi.dll。 (尽管看起来已经是)这是IIS中虚拟目录中的"配置..."按钮>"应用程序映射"选项卡。