1

我只是在使用 ASP.Net 2.0 干预 C# 中的 RESTful Web 服务的方式,并且已经管理(通过类库、对前者产生的 dll 的引用以及对我的 web.config 的一些调整)来哄出一个URI 格式如下:

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

毫无疑问,它只是将输入作为带有启发性前缀“您的输入是:”的文本返回

我的印象是,我可以让 URI 变得更加平滑,类似于以下内容:

http://localhost/DevelopmentProject/testhandler/thisismyinput

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

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

< add verb="*" path="testhandler/*" type="HandlerLib.testhandler, HandlerLib"/ >

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

基本上我哪里错了?

谢谢。

4

5 回答 5

1

一种解决方案是使用 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”

于 2008-09-26T11:17:51.717 回答
0

您可以使用URLRewriter.net之类的东西来实现 URL 重写, 这将使您可以使用您提到的语法。

于 2008-09-26T11:17:15.680 回答
0

我有点作弊。

尝试:

我关于如何绕过它的文章

于 2008-09-26T16:07:24.117 回答
0

将您的配置从: < add verb="" path="testhandler/" type="HandlerLib.testhandler, HandlerLib"/> 更改为: < add verb="" path="testhandler/*" type="HandlerLib.testhandler,处理程序库"/ >

于 2009-03-31T05:52:38.433 回答
0

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

如果不这样做,请确保 IIS 5.1 将所有请求路由到 aspnet_isapi.dll。(虽然,它似乎已经是)这是 IIS 中虚拟目录中的“配置...”按钮 >“应用程序映射”选项卡。

于 2009-05-25T05:45:50.373 回答