Categorias
application diret??rio virtual dll iis site windows

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:WindowsSystem32inetsrv . 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:WindowsSystem32inetsrvconfig . Agora sim ir?? criar. Para mais exemplos veja nesse post aqui.

Categorias
dicas iis plesk seguran??a windows

Recuperando a senha da conta identidade do Pool de Aplicativos do Plesk no IIS

Mais um t??tulo longo… um tanto confuso, mas em resposta a uma d??vida de um amigo:

“Exclui um Application Pool no IIS e nela estava configurada uma conta interna do Plesk: IWAM_plesk. N??o sei a senha utilizada. Tem como recuperar a senha para recriar um novo application?”

Sim! O Plesk sempre nos pregando aquela pe??a… Os dois pools que o Plesk utiliza est??o vinculados ?? conta IWAM_plesk (conta interna) para que possam manipular corretamente os arquivos e seus aplicativos (bem como as permiss??es necess??rias) no sistema operacional:

  1. plesk(default)(2.0)(pool)
  2. plesk(default)(4.0)(pool)

 Ent??o fa??amos as seguintes etapas:

  • Abra o Prompt de Comando em Modo Administrador;
  • Navegue para a pasta C:Windowssystem32inetsrv;
  • Execute o comando appcmd.exe list apppool ???plesk(default)(2.0)(pool)??? /text:*
Aparecer?? a descri????o completa desse pool. Procure a entrada referente ao usu??rio e senha do Plesk conforme a figura abaixo:
Agora voc?? tem a senha do usu??rio! No site de Dhiraj tem mais detalhes acerca desse tipo de recupera????o.
Categorias
dicas host iis site web

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:WindowsSystem32driversetc 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!

Categorias
asp erros iis seguran??a web.config

Error 500 Internal Server Error – Como descobrir o problema

Quando d?? esse erro muitas pessoas tremem s?? de ver! Abaixo darei uma dica para quem ?? marinheiro de primeira viagem e se depara com isso.

Essa tela ?? gerada pelo IIS para camuflar o erro para o usu??rio. Se a aplica????o n??o for bem tratada quanto a erros, esse ?? o ??ltimo recurso que o IIS faz para n??o exibir o erro na tela. Seria bem inc??modo para o usu??rio ver na tela o erro de seu site, por exemplo. Para quem est?? gerenciando a aplica????o ?? inc??modo at?? certa parte, pois muitas vezes o desenvolvedor resolve o problema mais olhando o erro do que analisando log, events, etc. Pois bem, vamos l??!

Abra o IIS e procure pela fun????o Error Pages (P??ginas de Erro) no m??dulo IIS. Entre e procure pelo link Edit Resource  Settings (Editar Configura????es de Recurso). Ao abrir, a tela de Edit Error Pages Settings (Editar Configura????es de P??gina de Erro) escolha a op????o Detailed errors (Erros detalhados) e OK.

Ou, mais especificamente para o ASP.NET, procure a fun????o .NET Error Pages (P??ginas de Erro do .NET) no m??dulo ASP.NET. Entre e procure pelo link Edit Resource  Settings (Editar Configura????es de Recurso). Ao abrir, a tela de Edit Error Pages Settings (Editar Configura????es de P??gina de Erro) escolha a op????o Desactive (Desativar) e OK.

Com isso, a depender do erro, j?? estar??o sendo enviados para a tela. Lembram do post sobre seguran??a? No web.config, deixe o customErrors com o atributo mode=”Off” caso necess??rio para que os erros sejam exibidos.

Caso ainda n??o tenha descoberto o problema, acesse a configura????o do ASP  no m??dulo IIS. Expanda a propriedade Debugging Properties (Propriedades de Depura????o) e coloque como True a fun????o Send Errors to Browser (Enviar Erros ao Navegador).

Isso deve ser mais do que o suficiente para exibir o erro e identificar qual o problema est?? na aplica????o. Lembrando que, se prefer??vel, n??o deixar o erro ser exibido para o cliente. Deve-se fazer o poss??vel para tratar e localizar adequadamente o problema. Seguran??a em primeiro lugar!

Categorias
banco de dados cloud server crystal reports dll erros iis locaweb plesk sql server windows

Mega Post de Erros

Lidar com erros ?? algo realmente muito chato… Chato demais! Esses dias fui convocado para fazer um certo trabalho de migra????o entre servidores. Um desses servidores era um Cloud Server Pro da Locaweb. Em muitos posts que aqui escrevi tem um pouco retratando sobre a Locaweb. Trabalho e j?? trabalhei muito com ela e sei de todos os seus passos e “artimanhas” de atendimento… O antigo Cloud Server foi at?? tranquilo de trabalhar, mas esse novo… Vamos aos problemas!

Uma dica que dou sempre quando algu??m quer contratar um servidor: leiam muito sobre os pr??s e contras. Os pr??s vejam no pr??prio site do prestador, os contras vejam nos relatos de usu??rios. No post a seguir n??o estou jogando a Locaweb contra a parede, apenas estou expondo erros que podem ser sanados de forma f??cil mas que burocraticamente ?? jogado para o cliente se virar (nos 30!).

Nesse Cloud Server vem embutido o Plesk. Em poucas palavras serve para gerenciar a hospedagem atrav??s de uma interface web. ?? uma boa ferramenta de ger??ncia, tem tudo para gerenciar sua hospedagem. S?? que esse demais gera ocupa????o demais (redund??ncia) de espa??o em disco. Dos 50 Gb que voc?? contrata, 40Gb ?? para o sistema operacional e 10Gb para seus arquivos. Sendo que dos 10Gb ?? para todos os seus arquivos, e-mails, banco de dados, etc. Ou seja, apenas usufrui dos 10Gb um pouco menos que 9Gb e olhe l??.

Bem, dizem que vem tudo preparado e instalado para usar… Verdade at?? certa parte! Quem est?? usando e ?? iniciante vai ver que ?? mil maravilhas. D?? para fazer o b??sico de tudo. O problema vem a seguir…

Um cliente contratou o Cloud Server gerenciado pelo cliente (ou seja, sobrou para o usu??rio final) e me passou para configurar e deixar no ponto de uso fazendo toda a migra????o e instala????o. Em um passe de m??gica surgem os problemas…

Os bancos de dados que vem s??o o MS SQL Server 2008 e o MySQL. N??o h?? interface para dump e recovery das bases for??ando a usar o Plesk para isso, mas n??o queria. Onde est?? o Management Studio 2008? Onde est?? o MySQL Workbench? Como vou fazer para migrar as bases? Gerar script de bancos gigantes? Nem pensar! Preciso instalar!

Mas como instalar esses aplicativos? Se fazer download, gera tr??fego. Se pedir para a Locaweb tem que pagar e se pedir, de gra??a, n??o instala! Lembrando que esses aplicativos, no m??nimo, s??o gratuitos e deveriam estar em uma zona em que os usu??rios pudessem obt??-los de forma f??cil e sem cobran??a. Pois bem, feito o download, hora de instalar. Abrindo o execut??vel (lembrando que tem que ser a da vers??o 64bits) d?? aviso de incompatibilidade. ?? preciso instalar o Service Pack 1 do SQL Server 2008 (mais tr??fego). Baixado o SP1 ?? preciso instal??-lo. Tranquilo e instalado sem problemas. Hora de instalar o Management Studio

Ao tentar abrir, outro problema?!?! ?? preciso do Framework 3.5! Incrivel… No Cloud Server vem instalado a vers??o 2.0 e 4.0 do Framework ASP.NET mas n??o tem a 3.5 ativado. Menos mal, porque no Windows Server 2008 ?? nativo, basta ativar. Realize os seguintes passos (retirado do Wiki):

  1. Clique em Start, Administrative Tools e selecione Server Manager;
  2. Na interface, clique em Features e clique em Add Features;
  3. Selecione a primeira op????o .NET Framework 3.5.1 Features e adicione todos seus dependentes;
  4. Conclua a instala????o do Framework.

Agora sim, tudo pronto! Vamos instalar o Management Studio. Clica no instalador e… Erro! Caramba… de novo!

TITLE: SQL Server Setup failure.
——————————-


SQL Server Setup has encountered the following error:


Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

A dica ??: feche o Windows Explorer! Por algum motivo, a instala????o do Management Studio n??o inicia quando o Windows Explorer estiver em aberto. Copie para a ??rea de Trabalho e abra o instalador… Agora sim! Depois de tanta malemol??ncia pelo menos iniciemos a instala????o. Para quem tem d??vidas e um passo-a-passo bem explicativo de como instalar o Management Studio, acesse aqui o post de Marcos dell Antonio. H?? uma dica bem interessante que pode confundir o usu??rio na hora da instala????o. Terminado a instala????o, menos um item da lista de afazeres.

Consegui conectar ao SQL Server local, criei as bases, usu??rios, fiz restores, configurei o backup, providenciei tudo o que tinha que fazer onde o Plesk jamais pensaria em um dia ser. Agora o principal, testar um website. Publiquei o site no IIS e abri o navegador para visualizar. Erro!

Could not load type ‘System.ServiceModel.Activation.HttpModule’ from assembly ‘System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’.

Sabe o porqu?? disso? Eu instalei o ASP.NET 3.5 depois que eu j?? tinha a vers??o 4.0 instalada por causa do Management Studio ent??o gerou conflito nas DLL’s. Para resolver, fa??a o seguinte:

  1. V?? para a pasta C:WindowsMicrosoft.NETFramework64v4.0.30319;
  2. Execute o comando aspnet_regiis.exe -iru

Agora vamos testar! Abri o navegador e digitei o endere??o e… Mais erro!

There is a duplicate ‘system.web.extensions/scripting/scriptResourceHandler’ section defined

Mais conflitos! Se voc?? tiver outra vers??o do System.Web.Extensions instalado, devido ao ASP.NET AJAX por exemplo, a vers??o que est?? no GAC do sistema difere da que voc?? quer chamar ocorrendo ambiguidade. O correto seria alterar os assemblys mas como isso ?? muito trabalhoso e pode acontecer algum imprevisto para aqueles que n??o sabem manuse??-las, ent??o aconselho o seguinte: remova toda a sectionGroup do seu web.config ou comente-as:

<!–
<sectionGroup name=”system.web.extensions” type=”System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″>
<sectionGroup name=”scripting” type=”System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″>
<section name=”scriptResourceHandler” type=”System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ requirePermission=”false” allowDefinition=”MachineToApplication” />
<sectionGroup name=”webServices” type=”System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″>
<section name=”jsonSerialization” type=”System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ requirePermission=”false” allowDefinition=”Everywhere” />
<section name=”profileService” type=”System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ requirePermission=”false” allowDefinition=”MachineToApplication” />
<section name=”authenticationService” type=”System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ requirePermission=”false” allowDefinition=”MachineToApplication” />
</sectionGroup>
</sectionGroup>
</sectionGroup>
–>

No caso comentei o sectionGroup do System.Web.Extension que pode estar na vers??o 1.0, 2.0 ou 3.5 que for.

Agora vamos l??! De p??s juntos e m??os dadas: Abre o navegador e… e… e… Funcionou! Depois de um ??rduo trabalho aparentemente tudo estava normal. Vamos testar outros sites e… e… e… Mais erros!

Quem ainda n??o est?? acostumado a trabalhar com Windows Server 2008 e IIS 7 ter?? que aprender muito sobre permiss??es e tratamento de erros. Incontestavelmente a tela do erro 500 ir?? aparecer e muito se sua aplica????o n??o estiver configurada adequadamente para o IIS 7. Nem sempre a mesma aplica????o que est?? no IIS 6 ir?? funcionar no IIS 7. Ent??o eis que surge a tela do Erro 500 Erro Interno do Servidor ou Error 500 Internal Server Error:



Ou ent??o:

D?? para descobrir o que ??? Vou dar a dica: revise seu web.config. “Ah, mas est?? tudo certo, n??o sei porque n??o funciona…”. Engano, est?? errado. J?? disse que o IIS 7 ?? chato, muito chato. O parser dele ?? muito minucioso e se n??o estiver nos padr??es vai dar problema.

Se voc?? n??o sabe utilizar bem o IIS e tem medo de alterar uma coisinha ali e outra acol?? vou dar a maior dica: saia abrindo cada op????o do painel da aplica????o at?? que uma delas acuse um erro de configura????o.

Por exemplo, abra o item Documento Padr??o. Se ele estiver configurado corretamente ent??o abrir?? a pr??xima tela normalmente. Se tiver algum erro, aparecer?? um alerta. Ent??o no web.config voc?? deve corrigir a sess??o correspondente. Ficou claro? Saia clicando um a um at?? que um deles se denuncie podendo ent??o fazer a corre????o.

O que ocorreu comigo foi que um site que estava no IIS 6 podia colocar a mesma p??gina (index.aspx) como padr??o, duas vezes, e n??o tinha problema. Quando foi para o IIS 7, na qual estava herdando a configura????o pai, e foi adicionar a p??gina index.aspx como padr??o novamente, ele dava erro e n??o sabia porqu??. Ent??o removi a entrada do web.config e funcionou. Desabilitar a mensagem de erro amig??vel no navegador vai funcionar (encontrar o erro)? N??o. Desabilitar as p??ginas de erros personaliz??veis do IIS vai funcionar (encontrar o erro)? Talvez ou n??o. Depende muito do ambiente que est?? configurado e quem est?? manipulando.

Pronto! Mais um problema solucionado… Vamos testar outro site e… e… e… Erro! Agora aconteceu um erro 404. Mas como? Erro 404 de p??gina n??o encontrada mas se o caminho est?? l??? Incrivelmente no IIS do Cloud Server possuem dois Applications Pools do Plesk (e mais outros nativos): Plesk(default)(2.0) e Plesk(default)(4.0). O pool do 2.0 quase nem sempre funciona. E um comportamento anormal ?? que se voc?? tem um site pai em 2.0 e um filho em 2.0 ??s vezes p??ra de funcionar. O “correto” ?? ter um pai 2.0 ou 4.0 com filho sempre 4.0. Estranho? Pode crer! E onde est?? o pool do 3.5? Tem que criar na m??o mesmo.

Nota: Se voc?? reiniciar o IIS o Plesk p??ra de vez e n??o volta:

Voc?? ter?? que inici??-lo manualmente. Mas antes ter?? que iniciar seu pool tamb??m (que ?? muito suspeito):

 Ajeitado uma coisinha ali, outra aqui, vamos testar mais algumas coisas e… e… e… Quase tudo certo. Em quest??o de funcionalidade (que deveria ser) est?? quase tudo certo a n??o ser o funcionamento do bom e velho Crystal Reports. Quem j?? leu o post de erros do Crystal aqui e aqui nos deparamos com o erro:

O inicializador de tipo de ‘CrystalDecisions.CrystalReports.Engine.ReportDocument’ acionou uma exce????o

ou

The type initializer for ‘CrystalDecisions.CrystalReports.Engine.ReportDocument’ threw an exception

Cuidado! Esse n??o ?? o descritivo do erro. S?? com isso n??o d?? para saber o motivo. Fa??a o debug, log,  exibi????o da pilha ou na pr??pria tela exiba o erro (sem ter AJAX) que teremos o erro completo. No link dos dois posts anteriores que fiz explica o problema do Crystal na plataforma 64bits e como pode resolver. S?? que o problema no meu caso era permiss??o.

Server Error in ‘/virtual_directory_name’ Application.
Error in File UNKNOWN.RPT:
The request could not be submitted for background processing.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System.Runtime.InteropServices.COMException: Error in File UNKNOWN.RPT: The request could not be submitted for background processing.

Os usu??rios listados abaixo, n??o tinham permiss??o na execu????o de scripts DCOM e grava????o em algumas pastas (principalmente as que est??o na unidade C):

  • IWAN_plesk(default)
  • IUSR
  • IIS_IUSR
  • NETWORK SERVICE
  • INTERACTIVE

Esses s??o os usu??rios que devem ter privil??gio (descritos abaixo) nas pastas listadas abaixo:

  • C:WindowsTemp : leitura escrita
  • C:Program Files (x86)Business ObjectsCommon2.8bin : leitura
  • C: : leitura

Obs: Para alguns servidores ?? preciso aplicar o Replace permission entries on all child objects nessas pastas.

Lembrando de reiniciar o IIS e/ou o servidor para recarregar as configura????es.

Se estiver trabalhando com Windows Service ou Windows Form e ocorra o erro:

System.IO.FileNotFoundException: Retrieving the COM class factory for component with CLSID {5FF57840-5172-4482-9CA3-541C7878AE0F} failed due to the following error: 8007007e

Basta compilar sua aplica????o em x86.

E agora, tudo certo? At?? o momento sim. Porque n??o dizer que est?? tudo OK? Depois de ter ocorrido todos esses problemas, fica-se receoso com o futuro. Pode ser que ocorra outro problema posteriormente? Sim e ir??.

Conforme disse anteriormente, o post n??o ?? para dizer mal sobre a Locaweb e/ou Plesk. Acho que eles prestam um servi??o adequado para o n??vel nacional (at?? uso) contudo s??o coisas que acontecem que simplesmente poderiam ser sanadas antes de jogar o pepino para o cliente. Se voc?? tiver algum problema desses e sua ger??ncia for pelo cliente, nem adianta pedir que eles v??o lhe informar: “o gerenciamento ?? por conta do cliente e n??o nos responsabilizamos” ou “a ferramenta (Plesk) ?? terceirizada e n??o prestamos suporte.”. Enfim, espero que o post ajude a voc??, cliente e usu??rio, a corrigir seus problemas/pepinos que ocorrerem. Isso me lembra quando lan??ou o plug-and-play… a velha piadinha do plug-and-pray (ligar e rezar) n??o some da cabe??a quando ocorre esse tipo de problema. Porque ser???

Categorias
desempenho dicas dll iis

Diferen??as entre Aplica????es Compiladas e N??o-Compiladas

Quando program??vamos (ou programamos) com aquelas linguagens do tipo PHP ou ASP Cl??ssico apenas peg??vamos o que foi implementado e jog??vamos no servidor web para uso. Com a inova????o das tecnologias e tipos de linguagens (compiladas, interpretadas, h??bridas) algumas d??vidas nos cercam quando estamos publicando um certo projeto. Nesse caso, falemos do ASP.NET para as vers??es acima da 2.0.

Antes de mais nada, o ASP.NET ?? compilado. Mesmo que voc?? jogue os fontes no IIS ele ?? compilado na primeira vez que ?? acessado (e/ou alterado). Voc?? n??o v??, mas por tr??s ?? feito isso. Para quem nunca compilou uma aplica????o web, h?? diversas formas para uma dada finalidade. Geralmente ?? usada a fun????o Publish Web Site (compila e publica).

Mas o que muitos perguntam ??: existe diferen??a de desempenho? N??o! Muitos dizem que h?? um pouco, mas j?? trabalhei com v??rias aplica????es e n??o notei qualquer diferen??a. Li v??rios artigos por a?? na net e n??o achei qualquer um que demonstrasse e/ou notasse diferen??a brusca de desempenho. Ent??o, elaborei a seguinte tabelinha abaixo com um pequeno resumo. Se tiver mais, favor avisar-me que atualizo:

Compilada
N??o-Compilada
 Desempenho
 Normal
Normal
 C??digo-fonte
 Protegido em DLL’s
Vis??vel 
 HTML
 Sem mudan??a
Sem mudan??a 
 Atualiza????oCorre????o
 Precisa compilar todo o projeto e public??-lo (c??digo-fonte) enquanto no design pode alterar normalmente
Pode alterar diretamente no problema (p??gina)
 Primeiro Acesso
 Normal
Lento 

??bvio que toda regra tem sua exce????o, ent??o a depender dos casos supra-citados pode haver pequenos detalhes que mudam uma coisinha ou outra mas nada de t??o dr??stico (de acordo com a tabela – exemplo, na compila????o FULL voc?? n??o altera sequer o HTML). Se quiserem conhecer mais sobre os tipos de compila????o (Full, Pr?? ou Sob-Demanda) visite os links da MSDN e de Dennes Torres.

Categorias
blog iis mvc wordpress

WordPress em ASP.NET

O WordPress ?? um dos melhores gerenciadores de blogs que eu j?? vi. Muito completo e de c??digo aberto, sua flexibilidade de utilizar add-ons (plugins) ?? o que permite dar-lhe grande escalabilidade. Visite o link para conhecer… J?? tinha utilizado a ferramenta algumas vezes e achei bem intuitiva e f??cil de usar (al??m de manipul??-la). Ent??o dei uma olhada na net e, infelizmente, n??o h?? vers??es dele em ASP.NET. Ent??o pensei: porque n??o fazer?

Comecei a dar uma olhada no c??digo analisando a reutiliza????o das p??ginas. Vendo por alto d?? para sentir como o neg??cio foi bem feito! Surpreendente o que foi feito em PHP… Voltando… Primeiro gerei uma c??pia do HTML de algumas p??ginas. Como fiz isso? Exibindo a p??gina no navegador, mostrando o c??digo-fonte (em HTML) e salvando. S?? assim que d?? pois o c??digo PHP est?? misturando com c??digo HTML. ?? chato, trabalhoso e principalmente nunca fica do jeito que queremos. Mas ficou quase parecido.

Depois fiquei vendo que n??o vai ser t??o f??cil assim. Parei e desisti! Muito cansativo… Pelo menos j?? tenho o HTML de algumas p??ginas (est??tico). Fiquei enrolando por um tempo e precisava ter um CMS para sites. O WordPress j?? ?? um CMS ent??o pensei em agregar um m??dulo para fazer cadastros pegando uma tabela no banco de dados e transformando em formul??rio. Pelo menos isso! Feito…

Hoje, ao menos, j?? tenho um cadastro! Isso poderia ser feito por Linq? Claro! Isso ?? Linq… Apenas coloquei na casca do WordPress. Ou seja, o que fiz, qualquer um poderia ter feito. Agora o mais dif??cil ?? fazer os demais m??dulos. Ou seja, fazer o WordPress… Complicado! N??o sei se conseguirei fazer. Talvez desista no meio do caminho ou n??o. Futuro indeciso. Se um dia terminar coloco no Google Code ou em qualquer reposit??rio para download.

Fazendo umas pesquisas no Google, encontrei o site de David Pirek. Ele fez um gerenciador de conte??do para blogs em ASP.NET (em MVC ainda) de forma bem mais reduzida que o WordPress mas que tem o mesmo objetivo (menos a casca). Bem interessante! Para conhecer veja o projeto ASP.NET CMS 3.0. Acho que quebra um galho… Tamb??m, para ver o demo e a vers??o 4.0 clique aqui. A minha id??ia de copiar o WordPress e transformar em ASP.NET veio da?? e no grande poder que a ferramenta disponibiliza.

Resumo
Projeto: WordPress em ASP.NET
Linguagem: C# 3.5
Banco de Dados: SQL Server
Plugins: JQuery, Mootools, ASP.NET AJAX, NicEdit WYSIWYG
Andamento: 1%

Obs: Depois estava lendo que h?? um “armengue” de colocar o WordPress em PHP e o blog em ASP.NET para funcionar. Parece que se colocar o WordPress em um diret??rio e o blog em outro e configurar como aplica????es separadas no IIS (lembrando que pode ter o PHP no IIS com FastCGI) d?? pra fazer funcionar. S?? que ter?? que programar o blog para puxar as informa????es. N??o testei, mas fica a dica para quem quiser tentar…

Categorias
componentes dll iis

URL Rewriter – Escreva URL Amig??veis em ASP.NET

A URL Rewriter permite mascarar o endere??o original por um novo endere??o mais seguro e amig??vel. Se temos o endere??o:

http://thiagomarcal.blogspot.com/noticas.aspx?id_noticia=123

Podemos re-escrev??-la da seguinte forma:

http://thiagomarcal.blogspot.com/noticias/123

Ou de outras formas conforme o mascaramento desejado. Para fazer o mascaramento ?? preciso do componente URL Rewriter instalado no IIS. Ele ?? gratuito e ?? instalado facilmente. Para cada web-site ?? configurado um mascaramento de endere??os que automaticamente ele faz a convers??o logo que requisitado.
N??o vou entrar em detalhes do processo de instala????o e configura????o aqui pois no site oficial tem um v??deo (logo na Home), bastando seguir o passo-a-passo, que ir?? conseguir deixar conforme deseja. Tamb??m h?? dispon??vel v??rios tutoriais que auxiliam no processo bem como fun????es avan??adas. Clique aqui para visitar o site da Micrososft URL Rewriter.

Categorias
dicas iis windows

Corrigindo dois erros em uma tacada s??: O provedor ???Microsoft.Jet.OLEDB.4.0??? n??o est?? registrado na m??quina local e O inicializador de tipo de ‘CrystalDecisions.CrystalReports.Engine.ReportDocument’ acionou uma exce????o.

Problema: Porque o sistema operacional ?? 64bits.
Solu????o: Modo de compatibilidade em 32bits.

Bom se todo post fosse assim t??o r??pido para solucionar nossos problemas. Agora vamos alongar mais as respostas e enriquecer nosso conte??do:

1) O provedor ???Microsoft.Jet.OLEDB.4.0??? n??o est?? registrado na m??quina local

Se por ventura voc?? recebeu esse erro ao executar uma query em um banco de dados usando OleDb mesmo que tenha o Microsoft Office instalado corretamente ?? porque provavelmente a vers??o do driver instalado ?? para 32bits. Para corrigir isso, sua aplica????o deve rodar em 32bits (x86). Nesse post aqui ?? mostrado como compilar sua aplica????o desktop em x86 exclusivamente solucionando o problema. Mas para quem usa aplica????es desktop ter?? que mudar a configura????o do pool de aplica????o no IIS. Para isso v?? no IIS, Pools de Aplicativos e selecione o Pool usado pelas suas aplica????es. Clique em Configura????es Avan??adas e no item Habilitar Aplicativos 32bits configure para True.

2) O inicializador de tipo de ‘CrystalDecisions.CrystalReports.Engine.ReportDocument’ acionou uma exce????o

Caso bem semelhante ao anterior ocorre se sua m??quina ?? 64bits e instalar o Crystal Reports 32bits (x86). O modo de compatibilidade que o Windows coloca para aplica????es instaladas n??o funciona no caso. Para resolver isso basta instalar a vers??o 64bits do Crystal Reports (x64). Mas se voc?? realizou o passo acima e est?? habilitado o modo de compatibilidade de 32bits no IIS ent??o ter?? que usar a vers??o 32bits do Crystal de qualquer jeito.

Categorias
crash dicas iis

Corrigindo o problema do “Server Application Unavailable”

Esses dias me deparei com esse problema. Bem, h?? diversas causas que podem levar a isso e algumas solu????es podem ser facilmente encontradas pela net mostrando problemas:

E in??meros artigos/helps contendo outras solu????es/causas… Mas tamb??m h?? um caso devido ao Application PoolResumo: o Application Pool gerencia a mem??ria que ?? utilizada pelas aplica????es no IIS. N??o vou entrar em detalhes e serei bem direto na solu????o.

Bem, se voc?? deu de cara com o problema do Server Application Unavailable e j?? n??o sabe mais o que fazer (j?? criou e recriou in??meras vezes o site e deu na mesma), verifique todas as configura????es (novamente), veja se o Application Pool trabalhado est?? ativo e funcionando sobre a mesma vers??o do Framework .NET da aplica????o. Revise tamb??m a sua configura????o ou crie um novo e altere na configura????o do Web Site para o que foi criado. Isso deve resolver o problema…