Mostrando postagens com marcador site. Mostrar todas as postagens
Mostrando postagens com marcador site. Mostrar todas as postagens

Convertendo uma pasta em aplicação no IIS via código (C#)

Somente pelo IIS é possível converter uma pasta em aplicação? Mais ou menos. Na versão 7 do IIS já dispõe de módulos que simplificam o processo de criação de site, diretório virtual, pools de aplicação e as aplicações em si. Nesse artigo mostrarei bem rápido como converter uma pasta em uma aplicação.


Crie sua aplicação e adicione, como referência, o binário Microsoft.Web.Administration.dll que fica na pasta C:\Windows\System32\inetsrv . Agora adicione o seguinte código:

using Microsoft.Web.Administration;



private void CriaEntradaIIS(string diretorio)
    {
        try
        {
            // Cria a pasta do site
            if (!Directory.Exists(diretorio))
                Directory.CreateDirectory(diretorio);


            // Servidor de Aplicação
            ServerManager sm = new ServerManager();


            // Captura o site raiz onde irá adicionar a aplicação
            Site st = sm.Sites["Default Web Site"];


            // Cria a aplicação no diretório criado apontando o caminho, ex: aplicacao
            Application app = st.Applications.Add("/aplicacao", diretorio);
            app.ApplicationPoolName = "ASP.NET v4.0";
            sm.CommitChanges();


            // Libera
            sm.Dispose();
        }
        catch (Exception erro)
        {
            return;
        }
    }


Se tentar executar dará erro... Antes dê permissão total ao grupo Serviço de Rede (Network Service) à pasta C:\Windows\System32\inetsrv\config . Agora sim irá criar. Para mais exemplos veja nesse post aqui.

Testando um Web-Site na própria máquina como se fosse externamente

Tentei elaborar um título de forma que ficasse entendível o que eu queria dizer. Não sei se ajuda, mas significa que:
"Testaremos o acesso a um web-site que está publicado no IIS mas que no navegador não iremos usar localhost para buscá-lo e sim o próprio endereço."
Ficou bom agora? Então vamos lá. No IIS crie um web-site. O processo é bem simples:


Pronto! Já temos nosso site, mas se formos testar: http://thiagomarcal.com.br/ não encontra!


Por que isso? Quando queremos procurar um site, o sistema operacional analisa o hostname para saber onde encontrar esse endereço: se for interno e mapeado usa-se a rede interna, senão procura a rede externa dentre outros. Como não existe o mapeamento e tampouco o domínio externo, não acha nada. Então vamos alterar o arquivo de host.

Siga para o caminho: C:\Windows\System32\drivers\etc e abra o arquivo hosts, em modo texto, para adicionarmos algumas entradas.

# copyright (c) 1993-2009 microsoft corp.
#
# this is a sample hosts file used by microsoft tcp/ip for windows.
#
# this file contains the mappings of ip addresses to host names. each
# entry should be kept on an individual line. the ip address should
# be placed in the first column followed by the corresponding host name.
# the ip address and the host name should be separated by at least one
# space.
#
# additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# for example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within dns itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1	thiagomarcal.com.br

Coloque, na última linha, o IP, tabulação e nome do domínio nessa ordem para o site desejado. Salve e teste novamente o acesso. E pronto!


Mais fácil do que isso: impossível!