Изменение режима состояния сеанса ASP.NET InProc на State Server или SQL Server State - PullRequest
0 голосов
/ 26 мая 2019

Во-первых, я новичок в программировании веб-приложений. Я пришел из настольных приложений (WinForms & WPF). Недавно мне был назначен проект, который был сделан в прошлом другими людьми. Этот проект выполняется в ASP.NET MVC и использует режим состояния сеанса InProc.

Теперь я хочу построить веб-садоводство, то есть использовать несколько рабочих процессов для пула приложений. Я гуглил и обнаружил, что сеанс InProc не работает с веб-садоводством, потому что каждый рабочий процесс в пуле приложений использует свое собственное состояние сеанса. Поэтому я планирую переключить его в другой режим состояния сеанса, такой как State Server или SQL Server.

Теперь у меня есть сомнения. Помимо изменения режима состояния сеанса в Web.config:

<configuration>  
  <system.web>      
    <sessionState mode="InProc" timeout="25"></sessionState>  
  </system.web>  
</configuration>

... Мне нужно сделать дополнительную работу? например перепрограммирование приложения ASP.NET MVC, конфигурации или некоторых других вещей, чтобы оно работало?

Ниже я поделюсь некоторыми интересными ссылками:

1 Ответ

0 голосов
/ 27 мая 2019

Для веб-ферм вы должны поддерживать сеанс либо в StateServer, либо в Sql Server.Для этого вам необходимо добавить следующую конфигурацию

     <connectionStrings>
           <add name="ConnectionString1" 
           connectionString="Data Source=YourServer;Initial 
           Catalog=SessionDatabase;Integrated Security=True"
           providerName="System.Data.SqlClient" />
    </connectionStrings>



<!--Change your <sessionState mode="InProc" timeout="25"></sessionState>  to this.-->

<sessionState mode="SQLServer" customProvider="DefaultSessionProvider">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="ConnectionString1" />
  </providers>

...