我正在 Windows Server 2012R2 (iis 8.5) 上管理一个 Web 应用程序。
我有一个 default.aspx 页面,该页面重定向到另一个应用程序,并且还将 http 重定向到 https。
inetpub\wwwroot\默认.aspx
<%@ Page Language="VB" %>
<%
host = Request.ServerVariables("SERVER_NAME")
entryUrl = "https://" & host & "/foo/bar.aspx"
Response.Redirect( entryUrl )
%>
我发现,当我第一次创建虚拟机(使用 Chef 和 iis cookbook)并导航到 localhost 时,并没有https://localhost/foo/bar.aspx
像我预期的那样自动重定向到。重新启动 IIS 和应用程序池无法修复该问题。
彻底重启 Windows 服务器是我解决该问题的唯一方法。
什么原因会导致重定向直到重新启动后才起作用?
安装了以下模块:
PS C:\Users\sowen> C:\Windows\System32\inetsrv\appcmd.exe list modules
MODULE "HttpCacheModule" ( native, preCondition: )
MODULE "StaticCompressionModule" ( native, preCondition: )
MODULE "DefaultDocumentModule" ( native, preCondition: )
MODULE "DirectoryListingModule" ( native, preCondition: )
MODULE "IsapiFilterModule" ( native, preCondition: )
MODULE "ProtocolSupportModule" ( native, preCondition: )
MODULE "StaticFileModule" ( native, preCondition: )
MODULE "AnonymousAuthenticationModule" ( native, preCondition: )
MODULE "RequestFilteringModule" ( native, preCondition: )
MODULE "CustomErrorModule" ( native, preCondition: )
MODULE "IsapiModule" ( native, preCondition: )
MODULE "HttpLoggingModule" ( native, preCondition: )
MODULE "UrlRoutingModule-4.0" ( type:System.Web.Routing.UrlRoutingModule, preCondition:managedHandler,runtimeVersionv4.0 )
MODULE "ScriptModule-4.0" ( type:System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, preCondition:managedHandler,runtimeVersionv4.0 )
MODULE "OutputCache" ( type:System.Web.Caching.OutputCacheModule, preCondition:managedHandler )
MODULE "Session" ( type:System.Web.SessionState.SessionStateModule, preCondition:managedHandler )
MODULE "WindowsAuthentication" ( type:System.Web.Security.WindowsAuthenticationModule, preCondition:managedHandler )
MODULE "FormsAuthentication" ( type:System.Web.Security.FormsAuthenticationModule, preCondition:managedHandler )
MODULE "DefaultAuthentication" ( type:System.Web.Security.DefaultAuthenticationModule, preCondition:managedHandler )
MODULE "RoleManager" ( type:System.Web.Security.RoleManagerModule, preCondition:managedHandler )
MODULE "UrlAuthorization" ( type:System.Web.Security.UrlAuthorizationModule, preCondition:managedHandler )
MODULE "FileAuthorization" ( type:System.Web.Security.FileAuthorizationModule, preCondition:managedHandler )
MODULE "AnonymousIdentification" ( type:System.Web.Security.AnonymousIdentificationModule, preCondition:managedHandler ) MODULE "Profile" ( type:System.Web.Profile.ProfileModule, preCondition:managedHandler )
MODULE "UrlMappingsModule" ( type:System.Web.UrlMappingsModule, preCondition:managedHandler )
MODULE "ConfigurationValidationModule" ( native, preCondition: )
MODULE "HttpRedirectionModule" ( native, preCondition: )
MODULE "CustomLoggingModule" ( native, preCondition: )
MODULE "ServiceModel-4.0" ( type:System.ServiceModel.Activation.ServiceHttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, preCondition:managedHandler,runtimeVersionv4.0 )
MODULE "ApplicationInitializationModule" ( native, preCondition: )
MODULE "WebSocketModule" ( native, preCondition: )
MODULE "ServerSideIncludeModule" ( native, preCondition: )
default.aspx 是默认文档的一部分。
我对 IIS 还很陌生,因此非常感谢您的任何想法。
答案1
问题解决了:
事实证明,重新启动并不能解决问题,这是由于没有可用于 https 的“绑定”造成的。
我通过将文件中的 https 更改为 http 发现了这一点,它可以正确重定向(无需重新启动)。