请求仍然到达受 IP 限制的 .Net 网站

请求仍然到达受 IP 限制的 .Net 网站

我认为这是一个 SF 问题而不是 SO 问题,所以希望我能在这里找到答案......

我有一个 .Net 4 Web 应用程序部署到 Windows 2008/IIS7(开发服务器)和 Windows 2008R2/IIS7.5(生产服务器)。此站点运行正常。我们最近不得不向站点添加 IP 限制,设置为“全部拒绝,允许部分”。从白名单上的 IP 访问站点没有问题,但从被拒绝的 IP 访问站点会导致应用程序异常。我预计被拒绝的 IP 的结果将是标准的 IIS 错误页面,响应为 403.6,而请求从未到达站点,但似乎请求确实到达了站点。两台服务器都定义了许多站点并使用基于主机名的绑定。

从开发框中,这是我当前测试的 applicationHost.config 文件中的相关条目(prod 文件有允许条目而不是这个拒绝条目):

<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>

错误信息如下:

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)

您可以看到请求已到达站点,但不是按正常方式,因为从未创建过 NHibernate 会话。应用程序未指定任何自定义错误(自定义错误部分设置为 Off。)失败请求日志为空。

如果有人能指出哪里出了问题,无论是设置上还是我对其工作原理的理解上,我都会非常感激!

谢谢。

相关内容