Posts Tagged ‘asp.net’

Mudar trust level com o appcmd para todas as versões do asp.net

junho 28th, 2016

Aprendi que para mudar o trustLevel de somente um site cadastrado no IIS 8 eu poderia usar o comando abaixo

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot

Ele faz commit no web.config do framework, e a configuração só vale para site.com.br. A configuração fica tipo isso

<location path="site.com.br">
   <system.web>
       <trust level="Full" />
   </system.web>
</location>

O problema que eu tive foi que o comando alterava o trust level somente para a versão 4 do asp.net, mesmo se o site estivesse utilizando a versão 2.0, era a versão 4 que era alterada. Pesquisando descobri que dá pra informar a versão no final do comando, assim é possível configurar tanto para a versão 2 quanto para a versão 4. O exemplo abaixo configura o trust level para full na versão 2.0 do asp.net.

appcmd set config "site.com.br" -section:system.web/trust /level:"Full" /commit:webroot /clr:2

O site que me ajudou com isso foi esse:
http://weblogs.asp.net/owscott/targeting-the-net-framework-version-and-bitness-in-appcmd

Encriptografar e descriptografar seção no web.config

junho 29th, 2015

1) Abra o prompt de comando
2) Altere o diretório para a versão do asp.net que você usa

cd %windir%\Microsoft.NET\Framework\versao

3) Rode o comando alterando a seção que quer utilizar e o site utilizado

aspnet_regiis -pe "connectionStrings" -app "/" -site "batatinha.com.br"

no exemplo a cima, vamos criptografar a seção “connectionStrings” para a aplicação raiz do site “batatinha.com.br”

4) Abra o web.config do site, verá que haverá algo do tipo

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
  <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
   xmlns="http://www.w3.org/2001/04/xmlenc#">
   <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
   <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <KeyName>Rsa Key</KeyName>
     </KeyInfo>
     <CipherData>
      <CipherValue>n/zynKbSuIPDiyR44df1zZcDJSTfND7qQ8vduh83yEU0GcI+fD3LHdFcAkMZyfHfnsKpfMXf6F3zd4UyDjSJDBduN17xe0COGLyrivFifFtw1VcpRHLwR+z9MF9yVyi9a2Sbj5YO8nU50zJgOnN53GaM5KEZIT0abO2l0koo=</CipherValue>
     </CipherData>
    </EncryptedKey>
   </KeyInfo>
   <CipherData>
    <CipherValue>P4+kFEJ5/rXZp9edsksmVRg/Jo2zZCuHR3103Tooy4AnX+WzawGHuA6HL6+9ULw1s7Wd+TCsfSO74befVnTCuYS6NFMQg+FtMdK0rtey9ryia0lyqccf4CZ4u2U9afqNcO6eN40rPvY8SVG5AbQ37VatWuhs8pu1ZfpN8hQjL3aeM3nXudXcLxU4YUf84oTsHf1Q8hGUDc2mnKQqpfU7jDNhDp8hmobV1Xb3q9DQPxD3k2eCKE+vD1ZXvHK8o7TuioZxv/TXUIX/ewc1pWzH3AdQJUSGhjJHAUUJ7pC4WYdNVwpB32NLokiR3gBOAmClHDqlRVrJ+yzoTZnfonBGPKjQT0q6Kxi5fsQUCRbG9rXe9SrIHGL1G3yE62R2lMO1dx6A+9mLiR3F82bKH5oJrrhmFrTjuCnLaYVhrTtWAWC8CAJ6fs5wk4dKg8fvcVNoIFKkHVyEgf8Wqvf0MRiGwfsob5tTNc15yfUZS5w6AnyWNqHrS1d//WTcJ++G5EXZdkDE7KxiDEisokflrtDIq+VC6zC3zcOH18H4h0UL1L5zlcMdHRvSJ2YlI0k4en1Dm3w05fzFf9Z5Sk7CS+NZjLl2jWT5m3ZBMiGBUORi0NYD8ThHkvuy9AwogQ/T8b+uj9o4Q3HwEqpSDMs0t0T7Izx7ISTan+OH58MgOPZ6Qq1gV/LqcGBTHqeojZzy5frlKTxMWokW2PXexHkyyW6vAEqOzYoXn5ctuuL8VfbQhut3Xlq6wbYD7jZh4gzxJJ1BbpEsGqr8YCRIMkhcju4dzHgHI/ks1dmAwWwOUFVjnsx2ZNrmo4kWk8HaujUybekdcWxstMXB1Jor6EB3dLYgoxQ74oetIAOmHIH93bE17MUEO1Yer9PTy0qU17cXl3EMZX/bGfYlppzh69WeszQ0/63IeBoPaoaWZaLgqMlogDntjdnQWqOA+goiKMSlqv9qWIdjdsZ63Ekhuc1H58qJrjPkJYvVjoGApECgvDtRBN8BcFaflMWzX+GxL0NCvi4poQiuSsD58/j1I0rl4kTUzA499s+uYy8WuX7OVh6gbXzlaSBvqj08+VtA+ewqW8S5bcPQdiG8EjAj1Be6VPc8qJb43H9JJF/8BtQ7ve+w=</CipherValue>
   </CipherData>
  </EncryptedData>
 </connectionStrings>

Feito 😀

Para descriptografar, faça o seguinte:

1) Abra o prompt de comando
2) Altere o diretório para a versão do asp.net que você usa

cd %windir%\Microsoft.NET\Framework\versao

3) Rode o comando alterando a seção que quer utilizar e o site utilizado

aspnet_regiis -pd "connectionStrings" -app "/" -site "batatinha.com.br"

No exemplo a cima vamos descriptografar a seção “connectionStrings” para a aplicação raiz do site “batatinha.com.br”

Créditos: https://support.transfrm.com/entries/27430158-Encrypting-Decrypting-the-database-connection-strings-in-web-3-0

Alterar level trust somente para um site

janeiro 29th, 2015

Caso seu servidor trabalhe em partial trust e com allowOverride = false, é possível configurar o modo full trust para um único site, para isso é necessário entrar em contato com o seu host e solicitar que insira as linhas abaixo, antes da tag </configuration>, no web.config do asp.net.

    <location path="%VHOST%">
        <system.web>
            <trust level="Full" />
        </system.web>
    </location>

Onde %VHOST% é o nome cadastrado para o seu site no IIS do servidor. Com essa configuração o servidor continua trabalhando em partial trust com exceção do site informado em %VHOST% 🙂
Algumas empresas de hospedagem não aceitam essa configuração, mas não custa nada dar uma chorada 😛

Exemplo de sessão no ASP.NET

agosto 21st, 2014

Crie os respectivos arquivos index.aspx.cs e index.aspx
Abaixo o index.aspx.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
 
    protected void btnCreateSession_Click(object sender, EventArgs e)
    {
        Session["Username"] = txtUserName.Text.Trim();
    }
 
    protected void btnRetrieveSession_Click(object sender, EventArgs e)
    {
        DisplaySessionValue();
    }
 
    protected void btnRemoveSession_Click(object sender, EventArgs e)
    {
        Session.Remove("Username");
 
        DisplaySessionValue();
    }
 
    protected void btnRemoveAll_Click(object sender, EventArgs e)
    {
        Session.RemoveAll();
 
        DisplaySessionValue();
    }
 
    private void DisplaySessionValue()
    {
        if (Session["Username"] != null)
            lblSessionValue.Text = Convert.ToString(Session["Username"]);
        else
            lblSessionValue.Text = "No Value has been stored in session";
    }
}

Abaixo o index.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ASP.net How to use session</title>
    <style type="text/css">
     .txtInput
     {
         width:250px; height:28px; paddiang:3px;
     }   
     div
     {
         margin:5px;
     }
     .validator
     {
         color:Red;
     }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         <fieldset>
            <h3>How to use Session</h3>
            <div>
            Userame:<br />
            <asp:TextBox ID="txtUserName" runat="server" MaxLength="50"></asp:TextBox>
            <asp:RequiredFieldValidator ID="rfvFirstName" runat="server" Display="Dynamic"
             CssClass="validator"  ControlToValidate="txtUserName"
             ErrorMessage="Username is required"></asp:RequiredFieldValidator>
            </div>
            <div>
                <asp:Button ID="btnCreateSession" runat="server" 
                    Text="Click to Create Session" onclick="btnCreateSession_Click" />
                &nbsp;
                <asp:Button ID="btnRetrieveSession" runat="server" CausesValidation="false" 
                    Text="Click to Retrieve Session Value" onclick="btnRetrieveSession_Click" />
                &nbsp;
                <asp:Button ID="btnRemoveSession" runat="server" CausesValidation="false" 
                    Text="Click to Remove Session Value" onclick="btnRemoveSession_Click" />
                &nbsp;
                <asp:Button ID="btnRemoveAll" runat="server" CausesValidation="false" 
                    Text="Click to Remove All Sessions" onclick="btnRemoveAll_Click" />
            </div>
            <p>
                Note: 1st create a session by providing user name in text field, then you can retrieve the value from session.
            </p>
            <div>
                Value stored in Session: 
                <strong><asp:Label ID="lblSessionValue" runat="server"></asp:Label></strong>
            </div>
        </fieldset>
    </div>
    </form>
</body>
</html>

Isapi Rewrite não funciona com ASP.NET 4

junho 8th, 2012

É, realmeante não funcionar se tu estiver usando o IIS 6. Se tu tá usando, vai ter problemas, ele vai redirecionar para o arquivo eurl.axd, não vai encontrar e o redirecionamento não vai funcionar. Pra solucionar isso tu vai ter que criar uma chave no registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 do tipo DWORD chamada EnableExtensionlessUrls, dê o valor 0 para ela, reinicie o IIS e teste novamente.

Limite de upload no asp.net

janeiro 25th, 2012

Tem um sistema de upload em aspx e tu não consegue fazer upload de arquivos com mais de 5MB? No problem, é possível configurar o limite de upload no asp.net pelo arquivo de configuração dele, o web.config, então faz o seguinte, adiciona essa linha aí dentro da tag <system.web> com o tamanho máximo de upload que tu quer, lembrando que o valor é medido em KB.

<httpRuntime maxRequestLength=”15360″/>

Nesse exemplo o limite de upload na aplicação foi alterado para 15MB

Feito com base nesse link

The entry ‘connectionString’ has already been added.

agosto 16th, 2011

Tu tem uma aplicação em asp.net que tenta fazer conexão com o banco de dados, mas quando acessa ela ocorre o erro

The entry ‘connectionString’ has already been added.

Faz o seguinte, no teu web.config, antes do elemento <add/> da configuração da conexão, insere um <clear/>, ficando algo como

<clear/>
<add name=”connectionString”…

Após recicla a pool de aplicativo que teu site utiliza e faz um novo teste.

Unable to make the session state request to the session state server

julho 27th, 2011

Esse erro estava ocorrendo quando tinha recém instalado o asp.net em um windows 2003.

Unable to make the session state request to the session state server.
Please ensure that the ASP.NET State service is started and that the client and server ports are the same.
If the server is on a remote machine, please ensure that it accepts remote requests by checking the value of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection.
If the server is on the local machine, and if the before mentioned registry value does not exist or is set to 0, then the state server connection string must use either ‘localhost’ or ‘127.0.0.1’ as the server name.

A solução que achei foi a seguinte: ativar o “ASP.NET State Service”, nos serviços do servidor, em ferramentas administrativas, no painel de controle. Configura ele para iniciar automaticamente, e inicia o serviço, reinicia o IIS e faz um novo teste, depois disso deve funcionar.

Olá mundo em asp.net

julho 22nd, 2011
1
2
3
4
<%@ Page Language="VB" %>
<html>
<%= "Hello World!" %>
</html>

Ooops! I can’t find the page you’re looking for

junho 9th, 2011

Esse erro deu na instalação do BlogEngine, no momento de postar um post, ocorre o erro

“Ooops! I can’t find the page you’re looking for

This one’s down to me! Please accept my apologies for this – I’ll see to it that the developer responsible for this broken link is given 20 lashes (but only after he or she has fixed this problem).

You can also try to search for the page you were looking for:”

Pra arrumar isso, no web.config da aplicação, procura a linha onde tem a tag “httpRuntime”, dentro dela, adicionar o seguinte

requestValidationMode=”2.0″

Vai ficar como isso

<httpRuntime enableVersionHeader=”false” useFullyQualifiedRedirectUrl=”true” maxRequestLength=”16384″ executionTimeout=”3600″ requestLengthDiskThreshold=”16384″ requestValidationMode=”2.0″/>

Salva o web.config e faz um novo teste.