Este artigo passo a passo demonstra como usar o Visual Basic .NET para criar um identificador HTTP simples e personalizado. Este artigo explica como criar, implantar e configurar o identificador.
Implementar o identificador
- Abra o Microsoft Visual Studio .NET. No Visual Basic .NET, crie um projeto de biblioteca de classes chamado MyHandler.
- Defina uma referência para a sub-rotina System.Web.dll.
- Adicione o código a seguir para importar o espaço para nome System.Web:
- Renomeie a classe SyncHandler.cs e altere a definição de classe para refletir isso.
- Implemente a interface IHttpHandler. Sua definição de classe deverá aparecer da seguinte maneira:
Public Class SyncHandler
Implements IHttpHandler
- Implemente a propriedade IsReusable e o método ProcessRequest da interface IHttpHandler. Como este é um identificador síncrono, retorne False para a propriedade IsReusable a fim de que o identificador não seja agrupado.
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
context.Response.Write("Hello from custom handler.")
End Sub - Compile o projeto.
Implantar o identificador
- Crie um novo diretório chamado Handler no diretório C:\Inetpub\Wwwroot.
- Crie um subdiretório chamado Bin no diretório Handler recém-criado. O caminho resultante será C:\Inetpub\Wwwroot\Handler\Bin.
- Copie o arquivo MyHandler.dll do diretório Bin do projeto para o diretório C:\Inetpub\Wwwroot\Handler\Bin.
- Siga estas etapas para marcar o novo diretório Handler como um aplicativo da Web:
- Abra o Gerenciador do Internet Services.
- Clique com o botão direito do mouse no diretório Handler e, em seguida, clique em Properties.
- Na guia Directory, clique em Create.
- Siga estas etapas para criar um mapeamento de aplicativo para o identificador. Nesse identificador, crie um mapeamento para o arquivo Aspnet_isapi.dll da extensão *.sync. Sempre que um arquivo .sync for solicitado, a solicitação será roteada para o ASP.NET e este executará o código no identificador.
- Clique com o botão direito do mouse no aplicativo de identificador da Web e, em seguida, clique em Properties.
- Na guia Directory, clique em Configuration.
- Clique em Add para adicionar um novo mapeamento.
- Na caixa de texto Executable, digite o seguinte caminho:
C:\WINNT\Microsoft.NET\Framework\< Número_da_versão >\Aspnet_isapi.dll
- Na caixa de texto Extension, digite .sync.
- Certifique-se de que a caixa de seleção Check that file exists está desmarcada e clique em OK para fechar a caixa de diálogo Add/Edit Application Extension Mapping.
- Clique em OK para fechar as caixas de diálogo Application Configuration e Handler Properties.
- Feche o Gerenciador do Internet Services.
Configurar o sistema
- No diretório C:\Inetpub\Wwwroot\Handler, crie um novo arquivo chamado Web.config.
- Adicione o seguinte código ao Web.config:
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" />
</httpHandlers>
</system.web>
</configuration>
No atributo verb="*", instruímos o identificador a processar uma solicitação que use qualquer verbo (por exemplo, POST, HEAD, GET e assim por diante). Se você quiser que o identificador processe somente a solicitação POST, altere esse atributo para verb="POST".
No atributo path="*.sync", instruímos o identificador a processar quaisquer solicitações recebidas para arquivos com a extensão .sync.
No atributo type="MyHandler.SyncHander, MyHandler", instruímos o identificador que processa a solicitação a implementar o espaço para nome MyHandler.SyncHandler e esta classe residirá na sub-rotina MyHandler.
Testar o módulo
Para testar um identificador, não é necessário que haja uma página no sistema de arquivos. Por exemplo, solicite o arquivo Default.sync no aplicativo de identificador da Web (http://<
Nome_do_computador >/Handler/Default.sync). Você receberá os seguintes resultados:
Hello from custom handler.
REFERÊNCIAS
Para obter informações adicionais sobre identificadores HTTP, clique no número do artigo a seguir para exibi-lo no Microsoft Knowledge Base:
307985
(http://support.microsoft.com/kb/307985/
)
BETA-INFO: ASP.NET HTTP Modules and HTTP Handlers Overview