Я управляю веб-приложением на сервере Windows 2012R2 (iis 8.5).
У меня есть страница default.aspx, которая перенаправляет на другое приложение, а также перенаправляет http на https.
inetpub \ wwwroot \ default.aspx
<%@ Page Language="VB" %>
<%
host = Request.ServerVariables("SERVER_NAME")
entryUrl = "https://" & host & "/foo/bar.aspx"
Response.Redirect( entryUrl )
%>
Я обнаружил, что когда я впервые создаю виртуальную машину (с Chef и кулинарной книгой iis) и перехожу на 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, поэтому приветствую любые идеи.
Задача решена:
Оказалось, что перезагрузка не решает проблему, она вызвана отсутствием «привязки» для https.
Я обнаружил это, изменив https на http в файле, который перенаправлялся правильно (без перезагрузки).