#asp.net #.net #session #iis #web-config
#asp.net #.net #сессия #iis #веб-конфигурация
Вопрос:
Пытаюсь установить тайм-аут сеанса на 60 минут, но по некоторым причинам он не работает в asp.net Веб-приложение 2.0.
Я провел онлайн-исследование и перепробовал все рекомендуемые настройки, но он все еще не работает.
Это то, что я пробовал до сих пор без какой-либо удачи;
- 60 минут ожидания сеанса в файле web.config
- 60 минут ожидания сеанса в IIS
- Установите время простоя пула на 70 минут
- пробовал как с cookieless =»true», так и с cookieless =»false»
Вот файл web.config;
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="50000" />
</appSettings>
<location path="pFooter.ascx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="pHeader.ascx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<pages enableEventValidation="false" />
<compilation defaultLanguage="vb" debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>
</compilation>
<httpRuntime executionTimeout="5000" />
<!--New-->
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
<customErrors mode="Off" defaultRedirect="ErrorPage.aspx" />
<authentication mode="Forms">
<forms name="resultslogin" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<!--New-->
<authorization>
<deny users="?" />
</authorization>
<!--New-->
<caching>
<outputCache enableOutputCache="false" />
</caching>
<xhtmlConformance mode="Legacy" />
</system.web>
<system.web>
<sessionState mode="InProc" timeout="60" />
</system.web>
<system.web>
<trace enabled="false" traceMode="SortByCategory" requestLimit="40" pageOutput="false" localOnly="true" />
</system.web>
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="false" />
</system.web>
<system.webServer>
<defaultDocument>
<files>
<add value="login.aspx" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Любой совет будет оценен.
Комментарии:
1. Почему все ваши настройки конфигурации заключены в двойные двойные кавычки:
""
?2. Я использовал онлайн-форматер HTML, чтобы привести в порядок свой конфигурационный файл, прежде чем копировать его сюда. Я обновил вопрос..
3. Может ли тайм-аут сеанса работать локально? Или это не работает, только если оно опубликовано в iis? В глобальном файле.asax вы установили время ожидания сеанса в событии Session_Start? наконец, вы можете попробовать очистить кеш и повторно использовать пул приложений, чтобы посмотреть, работает ли это.