我刚刚从IIS6迁移了一些站点到IIS7,并且遇到了其中一个站点的问题。
当网站(www.ourdomain.com/site1/)的请求进入后,斜线一切都很好。 但是,如果尾部的斜线被遗漏(www.ourdomain.com/site1),则请求失败。
显然,它不会在无斜杠的URL上执行301redirect,导致ASP.NET抛出exception。 这不会发生在同一个域的其他网站。
这可能是什么原因?
编辑:我得到的exception是:System.Web.HttpException:无法执行URL。 在System.Web.Hosting。 在System.Web.HttpResponse.BeginExecuteUrlForEntireResponse ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(String url,String方法,stringchildHeaders,布尔sendHeaders,布尔addUserIndo,IntPtr令牌,string名称,stringauthType,字节[]实体,AsyncCallback cb,对象状态) ,NameValueCollection requestHeaders,AsyncCallback cb,Object state)在System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext上下文,AsyncCallbackcallback,对象状态)System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()at System .Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔&完成同步)
你能提供关于你所得到的错误的更多细节吗? 我的第一个猜测是,StaticFile处理程序映射不存在(或没有正确configuration)。 在处理程序映射设置中,您应该具有以下设置的模块映射:
名称:StaticFile
path:*
键入:StaticFileModule,DefaultDocumentModule,DirectoryListingModule
请求限制:
映射:调用文件或文件夹
动词:全部
访问:读取
如果这是问题,你会得到一个404.4 /未find错误,与子错误“你正在寻找的资源没有处理程序与它关联”