asp.net Тайм-аут сеанса - PullRequest
       1

asp.net Тайм-аут сеанса

0 голосов
/ 26 августа 2011

возникла проблема с тайм-аутом моего проекта asp.net mvc всего через пару минут. Это особенно раздражает, потому что у меня довольно сложная процедура загрузки и импорта, которая падает, когда я выхожу из системы. В настоящее время я использую провайдер членства asp.net для аутентификации.

Я пробовал несколько вещей, которые видел на этом и других сайтах, но безрезультатно. Вот что у меня есть в веб-конфигурации:

<location path="Admin/Upload">
   <system.web>
      <httpRuntime executionTimeout="1200"/>
   </system.web>    
</location>

<system.web>       
<sessionState mode="InProc" timeout="20" cookieless="false" />

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" timeout="20" />
</authentication>

<add name="ConnectionString" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME;Database=DBNAME;User Id=USER;Password=PASSWORD;timeout=30;MultipleActiveResultSets=True" />

Я был уверен, что прошло всего минуту до истечения времени ожидания, прежде чем я добавил время ожидания сеанса, затем оно увеличилось до 2 минут, но не может быть 100%.

Я думал об этом:

<lifetime leaseTime="15M"/>

... но не уверен на 100%, как это реализовать - кто-нибудь имел успех с этим или знает что-то еще, что я мог попробовать?

Спасибо

РЕДАКТИРОВАТЬ: я использую облачный хостинг, но у меня есть только панель управления - нет доступа к IIS

ОБНОВЛЕНИЕ: я попытался добавить срок аренды, и это не имело никакого значения:

  <system.runtime.remoting>
    <application>
      <lifetime leaseTime="20M"  />
    </application>
  </system.runtime.remoting>
</configuration>

ОБНОВЛЕНИЕ 2: Хорошо, я отредактировал заголовок и значения веб-конфигурации, чтобы отразить мои последние усилия, но я все еще изо всех сил. Я поговорил с хостинговой компанией, которая установила тайм-аут соединения на 20 минут. Однако через 10 минут сеанс заканчивается. Могу ли я попробовать что-нибудь еще?

Я добираюсь туда, но мне бы хотелось 20 минут!

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Тег пожизненного аренды идет в теге приложения.

<application>
   <lifetime leasetime = "15M"/>

Я никогда не использовал его на самом деле, но если он похож на другие тайм-ауты, то вам понадобится M в конце. Это чистое предположение, хотя. Вы также должны иметь возможность установить его на «0», чтобы его время жизни было «навсегда»

Что касается времени ожидания сеанса, которое выглядит так, как будто оно должно быть установлено на 100 минут. Тем не менее, он должен быть внутри ваших <configuration> тегов

EDIT Совершенно не связанный с вопросом вид. Но мне нравится, как ваш тайм-аут выполнения "более 9000"

0 голосов
/ 02 сентября 2011

Правильно, у меня есть решение для этого, но это было не то, что я ожидал.

Оказалось, что я неправильно использовал поставщика членства в aspnet. Я использовал как предыдущую систему членства, над которой я работал, и вошел в систему, затем установил UserId в качестве переменной сеанса и использовал его по всему сайту. Затем я обнаружил, что это неправильный способ использования, и изменил его на комбинацию User.Identity.IsAuthenticated и Membership.GetUser().ProviderUserKey.

Уже нет времени и все хорошо. В любом случае, спасибо.

...