none
Ajuda na configuração do web.config - qual a "melhor" coniguração RRS feed

  • Pergunta

  • Prezados colegas,


    Tenho uma aplicação intranet com média de 100 usuários ao mesmo tempo.

    E estamos com dificuldade em configurar adequadamente o web.config, está tudo funcionando, mas as vezes há uma sobrecarga de consumo de PCU e estamos desconfiados que era uma configuração antiga do web.config que vínhamos usando sem nunca ter mexido.

    Basicamente, este trecho está assim:


    	<system.web>
    		<httpRuntime executionTimeout="36000" maxRequestLength="404856"/>
    		<customErrors mode="Off" defaultRedirect="/DefaultErro.aspx"/>
    		<globalization culture="pt-BR"/>
    		<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
    		
    			<assemblies>
    				<add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXX"/></assemblies></compilation>
    		<authentication mode="Forms">
    			<forms protection="All" path="/" timeout="61" loginUrl="Default.aspx" defaultUrl="Default.aspx" name=".sis" cookieless="UseCookies" requireSSL="false" slidingExpiration="true"/>
    		</authentication>
    		<authorization>
    			<deny users="?"/>
    		</authorization>
        <sessionState cookieless="UseCookies" mode="InProc" regenerateExpiredSessionId="true" timeout="60" useHostingIdentity="true"/>
      </system.web>

    O debug, sempre quando vamos publicar mudamos para false.

    Nossa aplicação é configurada para a sessão durar 1hora, e em algumas funções da aplicação acionamos uma rotina para resetar a sessão e há também um botão para o próprio usuário fazer isso.

    Então por isso no sessionState está com timeout="60", no caso do forms protection="All" path="/" timeout="61" o que conseguimos lembrar é que deixamos 61, com 1 a maior que o timeout do session, porque quando era menor, mesmo a sessão sendo resetada ocorria a expiração, algo assim.

    <sessionState cookieless="UseCookies" mode="InProc" regenerateExpiredSessionId="true" timeout="60" useHostingIdentity="true"/>

    Está adequado desta forma?

    Outra questão é httpRuntime executionTimeout="36000" maxRequestLength="404856"/>

    O maxRequestLength precisa ser alto porque pode ocorrer upload de arquivos grandes mesmo.

    Agora o executionTimeout, não sei porque deixaram tão alto, não faz sentido.

    Considerando que a sessão dura no máximo 60 minutos, e as requisições de cada sessão em tese não demorariam (pode haver um relatório ou outro que demore até uns 2 minutos para dar resultado, pelo volume de dados, mas não mais que isso), então na pior das hipóteses deveríamos colocar um httpRuntime executionTimeout de até uns 5 minutos?


    Outra dúvida, no caso do forms:

    <forms protection="All" path="/" timeout="61" loginUrl="Default.aspx" defaultUrl="Default.aspx" name=".sis" cookieless="UseCookies" requireSSL="false" slidingExpiration="true"/>


    Esta configuração do forms está ideal?  Tem mais algum detalhe importante?

    Como melhorar a configuração do web.config?

    Att.
    quinta-feira, 16 de março de 2017 14:50

Respostas

  • Sim, está um pouco alto mesmo e por isso estou postando abaixo o link com os valores padrão, acredito que o ideal é você partir do padrão e ir aumentando aos poucos.

    https://msdn.microsoft.com/en-us/library/e1f13641%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

    • Marcado como Resposta Angelo.Net sexta-feira, 17 de março de 2017 14:57
    quinta-feira, 16 de março de 2017 18:52

Todas as Respostas

  • O problema de lentidão nem sempre é configuração, pode ser qualquer dos itens a seguir.

    - Objetos na memória no qual você não fez uso do Dispose ou não colocou no bloco using.

    - Abrir uma conexão para cada select, inclusão, update, delete e etc, resultando em vários objetos aberto ao mesmo tempo.

    - Select com muitos campos no qual você só usará alguns campos.

    - Muitos Left Joins sendo que você poderia usar inner join ou refazer consultas.

    - Usando Lazy Loading e Proxy do Entity Framework.

    - Scripts do lado do cliente fazendo requisições desnecessárias.

    - Problemas no Servidor, vírus, aplicações consumindo recursos, tecnologia de hd, memória e processador defasados.

    - Problemas de rede, internet caindo ou problemas de lentidão.


    quinta-feira, 16 de março de 2017 15:09
  • Olá Cesar, obrigado.


    Entendo, estamos olhando outras opções, de toda forma, com pouco conhecimento que temos mais nesta parte mais relacionada ao web.config, as configurações como estão não está o ideal, pois como mencionei o httpRuntime executionTimeout estaria muito alto por exemplo. No geral as dúvidas quanto ao web.config, o que você acha?

    quinta-feira, 16 de março de 2017 18:41
  • Sim, está um pouco alto mesmo e por isso estou postando abaixo o link com os valores padrão, acredito que o ideal é você partir do padrão e ir aumentando aos poucos.

    https://msdn.microsoft.com/en-us/library/e1f13641%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

    • Marcado como Resposta Angelo.Net sexta-feira, 17 de março de 2017 14:57
    quinta-feira, 16 de março de 2017 18:52