![IIS 7 不执行 301 重定向](https://linux22.com/image/490552/IIS%207%20%E4%B8%8D%E6%89%A7%E8%A1%8C%20301%20%E9%87%8D%E5%AE%9A%E5%90%91.png)
我刚刚将一些网站从 IIS6 迁移到 IIS7,其中一个网站遇到了问题。
当网站 (www.ourdomain.com/site1/) 的请求带有尾部斜杠时,一切都会正常。但如果省略尾部斜杠 (www.ourdomain.com/site1),则请求会失败。
显然它没有对没有斜杠的 URL 进行 301 重定向,导致 ASP.NET 抛出异常。同一域中的其他网站不会发生这种情况。
这可能是什么原因造成的?
编辑:我得到的异常是:System.Web.HttpException:无法执行 URL。在 System.Web.Hosting。 ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(字符串 url、字符串方法、字符串 childHeaders、布尔 sendHeaders、布尔 addUserIndo、IntPtr token、字符串名称、字符串 authType、字节 [] 实体、AsyncCallback cb、对象状态)在 System.Web.HttpResponse.BeginExecuteUrlForEntireResponse(字符串 pathOverride、NameValueCollection requestHeaders、AsyncCallback cb、对象状态)在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext 上下文、AsyncCallback 回调、对象状态)在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤、布尔和 completeSynchronously)
答案1
您能提供更多有关所获错误的详细信息吗?我的第一个猜测是 StaticFile 处理程序映射不存在(或配置不正确)。在处理程序映射设置中,您应该有一个具有以下设置的模块映射:
名称:StaticFile
路径:*
类型:StaticFileModule、DefaultDocumentModule、DirectoryListingModule
请求限制:
映射:在文件或文件夹上调用
动词:全部
访问:读取
如果这是问题所在,您将收到 404.4/未找到错误,并出现子错误“您正在寻找的资源没有与之关联的处理程序”