Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用VisualStudioDevelopmentServer将所有请求传递给处理程序?_C#_Asp.net - Fatal编程技术网

C# 如何使用VisualStudioDevelopmentServer将所有请求传递给处理程序?

C# 如何使用VisualStudioDevelopmentServer将所有请求传递给处理程序?,c#,asp.net,C#,Asp.net,我有一个空的ASP.NET项目,只有一个HttpHandler,保存在Index.ashx中。我希望所有的请求都通过这个 public void ProcessRequest(HttpContext context) 我已经修改了我的项目属性,以便默认情况下加载该处理程序。但是,如果我在浏览器中键入其他Url,它将不会通过该处理程序传递。如何让它做到这一点?您想要做的通常是通过HttpModule而不是通过HttpHandler实现的。该模块可以拦截所有请求并根据需要修改请求/响应。…为了明确

我有一个空的ASP.NET项目,只有一个HttpHandler,保存在Index.ashx中。我希望所有的请求都通过这个

public void ProcessRequest(HttpContext context)

我已经修改了我的项目属性,以便默认情况下加载该处理程序。但是,如果我在浏览器中键入其他Url,它将不会通过该处理程序传递。如何让它做到这一点?

您想要做的通常是通过HttpModule而不是通过HttpHandler实现的。该模块可以拦截所有请求并根据需要修改请求/响应。

…为了明确回答我的问题,您可以将类似的内容添加到
web.config
文件中(也可以通过IIS管理器GUI完成):



其中“name”是一个任意名称,“type”是完全限定的类名(带名称空间)。

是的……模块听起来更合适。谢谢现在,我必须学习如何写其中一个!!处理程序很简单:(我仍然有点困惑,我应该使用哪一个。模块听起来很合适,因为它可以处理所有请求,但实际上,我只想让它处理响应。我正在构建一个url路由器。应用程序应该获取请求url,搜索路由列表,然后调用适当的方法并返回响应。模块不是“不响应返回这样的响应,是吗?@Ralph,在您的情况下,模块将不会生成响应-它只会将请求发送给正确的处理程序(url路由)。您的模块不必按照说法处理响应。顺便说一句,路由在.NET 4中已经可用。@VinayC:您的意思是通过MVC框架?我想构建自己的:)使用像Django这样的完全正则表达式支持。因此模块可以直接调用处理程序吗?在IIS中,您可以设置处理程序来根据文件扩展名处理某些文件类型。我是否可以在IIS中设置任何处理程序(仅模块)然后直接调用处理程序?是否有代码示例?@Ralph,路由可用于ASP.NET web表单-它并不意味着仅用于MVC框架。请参阅本文:。因此,路由可能会变得复杂,因为要正确实现,必须编辑响应并还原原始URL(即请求中出现的URL)-因此我的建议是使用ASP.NET提供的URL。不管怎样,这里有一个旧的代码示例:。另一种方法是使用reflector查看ASP.NET路由实现并从中学习。
<configuration>
    <system.webServer>
        <handlers>
          <add name="RequestHandler" path="*" verb="*" type="WebApplication6.RequestHandler" />
        </handlers>
    </system.webServer>
</configuration>