C# 当URL有点时,如何使global.asax运行?

C# 当URL有点时,如何使global.asax运行?,c#,asp.net,iis,C#,Asp.net,Iis,我有一个运行在IIS 7.5上的网站,我只能使用FTP访问该网站。(因此我将无法使用IIS管理器。) 我想重新组织URL结构,因此我修改了Global.asax代码以查找旧URL和响应。将它们重定向到新位置。这对一些URL非常有效,但不是所有URL都有效 通过一些实验,我发现当旧URL有一个点(例如,)时,我的global.asax代码就无法运行。如果删除URL的文件扩展名部分,global.asax代码运行正常 那些末尾带有.html等的URL已经存在,我现在无法更改它们 我需要做什么呢?现在

我有一个运行在IIS 7.5上的网站,我只能使用FTP访问该网站。(因此我将无法使用IIS管理器。)

我想重新组织URL结构,因此我修改了Global.asax代码以查找旧URL和响应。将它们重定向到新位置。这对一些URL非常有效,但不是所有URL都有效

通过一些实验,我发现当旧URL有一个点(例如,)时,我的global.asax代码就无法运行。如果删除URL的文件扩展名部分,global.asax代码运行正常

那些末尾带有.html等的URL已经存在,我现在无法更改它们


我需要做什么呢?

现在发生的事情是,IIS认为您对“/hello.html”的请求是一个静态文件,并尝试直接提供它,而不将它交给ASP.ENT应用程序(在它到达Globals.asax文件中的路由之前)

要更改此行为,您需要告诉IIS将这些请求发送到您的ASP.NET应用程序,而不是自行处理这些请求。您可以在web.config文件中执行此操作:

<system.webServer>
    <handlers>
        <add name = "LetMeHandleMyOwnStaticContent" path ="/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersion4.0"/>
    </handlers>
</system.webServer>


注意,这将使您能够通过应用程序处理所有静态文件(准备好处理.js文件、.css文件、.html文件、.png文件等)。你可以操纵路径和动词来缩小你想通过你的应用提供的服务范围。您可以通过重复“add”元素来添加多个筛选器(只需为每个路径使用唯一的名称)。

我们需要查看Global.asax中的代码,您是否有机会提供帮助?代码查看Request.Url,进行一些转换,并以Response.Redirect结束。