Solicitações que ainda chegam a um site .Net restrito por IP

1

Eu acho que essa é uma questão de SF, em vez de SO, então espero encontrar uma resposta aqui ...

Eu tenho um aplicativo da web .Net 4 implantado no Windows 2008 / IIS7 (servidor dev) e no Windows 2008R2 / IIS7.5 (servidor prod). Este site é executado sem um problema. Recentemente, tivemos que adicionar restrições de IP ao site, que é configurado como "negar tudo, permitir isso". Acessar o site de um IP na lista de permissões é bom, mas a partir de um IP negado, ele termina em uma exceção de aplicativo. Eu esperaria que o resultado do IP negado fosse uma página de erro padrão do IIS para uma resposta 403.6 sem que a solicitação chegasse ao site, mas parece que a solicitação chega ao site. Ambos os servidores têm muitos sites definidos e usam a vinculação baseada em nome de host.

Na caixa dev, aqui está a entrada relevante do arquivo applicationHost.config para o meu teste atual (o arquivo prod tem entradas permitidas em vez desta entrada negada):

<location path="OurSite.Web">
    <system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="true" />
            </authentication>
            <ipSecurity allowUnlisted="false">
                <add ipAddress="10.1.3.193" allowed="false" />
            </ipSecurity>
        </security>
    </system.webServer>
</location>

E aqui está a mensagem de erro:

2013-08-26 10:55:07,229 FATAL OurSite.Web (null) [12] System.Web.HttpApplication.RaiseOnError(:0) - An unhandled 'NotSupportedException' exception occurred within the application.
System.NotSupportedException: There is no session associated with this context. You should ensure that one has been started by specifying the correct domain alias
   at OurSite.Data.Dao.Session.NHibernateSessionManager.CommitTransaction()
   at OurSite.Web.HttpModule.AbstractNHibernateSessionModule.CommitAndCloseSession(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Você pode ver que a solicitação chegou ao site, mas não pelos meios normais, já que a sessão do NHibernate nunca foi criada. O aplicativo não especifica nenhum erro personalizado (a seção de erro personalizada está definida como Desativada). O log de solicitação com falha está vazio.

Se alguém puder apontar o que poderia estar errado, seja com a configuração ou com a minha compreensão de como isso funciona, isso seria muito apreciado!

Obrigado.

    
por Doughnuts 26.08.2013 / 03:50

0 respostas

Tags