Compartilhar via


ASP COM Plus <comPlus>

O elemento <comPlus> do elemento <asp> define as seguintes configurações COM+ para ASP (Active Server Pages) no IIS (Serviços de Informações da Internet) 7:

  • A propriedade appServiceFlags contém os sinalizadores que devem ser definidos para habilitar serviços COM+ em seus aplicativos IIS 7. Depois de habilitar os sinalizadores, talvez você também precise definir outras propriedades. Para obter informações, consulte a seção Configuração presente mais adiante neste artigo.

  • O atributo executeInMta especifica se o ASP pode executar scripts em um apartamento multithreaded. O ASP é capaz de executar todos os seus threads em um MTA (apartamento com vários threads). Se os componentes COM forem principalmente de thread livre ou ambos threaded, a execução dos threads ASP como MTA poderá melhorar significativamente o desempenho. Por padrão, a propriedade executeInMta é definida como false, o que significa que o ASP não é executado no MTA. Defina essa propriedade como true no nível do aplicativo para permitir que o ASP seja executado no MTA.

  • O atributo partitionId especifica o GUID (Identificador Global exclusivo) de uma partição COM+, que é usado para isolar aplicativos Web em suas próprias partições COM+. As partições COM+ contêm versões diferentes de seus próprios componentes COM personalizados.

    Observação

    Se você especificar um valor para o atributo partitionId, também precisará definir o sinalizador UsePartition do atributo appServiceFlags.

  • O atributo sxsName especifica o nome de um aplicativo COM+ e habilita assemblies SxS (lado a lado). Assemblies SxS (lado a lado) permitem que os aplicativos ASP especifiquem qual versão de uma DLL do sistema compatível com SxS usar, como MSVCRT, MSXML, COMCTL, GDIPLUS e assim por diante.

    Observação

    Se você especificar um valor para o atributo sxsName, também precisará definir o sinalizador EnableSxS do atributo appServiceFlags.

  • O atributo trackThreadingModel especifica se o IIS 7 verifica o modelo de threading de quaisquer componentes (objetos COM) que seu aplicativo cria. A configuração preferencial desse atributo de metabase é false. Se trackThreadingModel for definido como true, as seguintes condições serão aplicadas:

    • O ASP usa recursos do sistema para acompanhar o modelo de threading, reduzindo o desempenho do aplicativo ASP.

    • Objetos criados em seu aplicativo ASP fora do método OnStartPage ou OnEndPage são liberados anteriormente ao esperado, o que causa degradação na escalabilidade do aplicativo e pode impedir que seu componente grave na resposta no método destruidor de objeto.

      Se o atributo trackThreadingModel estiver definido como false e você fornecer o escopo do aplicativo aos componentes criados, esses componentes deverão agregar o marshaler de thread livre. Se você não agregar o marshaler de thread livre, o ASP gerará um erro ao tentar criar uma instância do componente. Para obter mais informações, consulte Selecionando um modelo de threading para componentes no IIS.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <comPlus> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <comPlus> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <comPlus> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <comPlus> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <comPlus> do elemento <asp> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <comPlus> substitui as seguintes propriedades de metabase dos IIS 6.0:
  • AspAppServiceFlags
  • AspExecuteInMTA
  • AspPartitionID
  • AspSxsName
  • AspTrackThreadingModel

Instalação

Para dar suporte e configurar aplicativos ASP em seu servidor Web, instale o módulo ASP. Execute as etapas a seguir para instalar o módulo ASP.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor. – No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos. – No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar. – Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Desenvolvimento do Aplicativo e selecionar ASP.

    Screenshot of Web Server and Application Development pane expanded with A S P selected.

    Se a caixa de diálogo Adicionar recursos exigidos pelo ASP? for exibida, clique em Adicionar recursos. (Esta página só será exibida se você ainda não tiver instalado o serviço de função Extensões ISAPI no seu servidor.) – Na página Funções de servidor, clique em Avançar. Na página Selecionar recursos, clique em Avançar. – Na página Confirmar seleções de instalação, clique em Instalar. – Na página Resultados, clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.

  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.

  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos de Desenvolvimento de Aplicativos e selecione ASP.

    Screenshot shows World Wide Web Services and Application Development Features node expanded with A S P selected.

    Observação

    A função Extensões ISAPI será selecionada se ainda não tiver sido instalada.

  4. Clique em OK.

  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione ASP.
    Screenshot of Select Role Services page showing Application Development node expanded and A S P selected.
  5. Se a caixa de diálogo Adicionar serviços de função exigidos pelo ASP for exibida, clique em Adicionar Serviços de Função Necessários. (Esta página só será exibida se você ainda não tiver instalado o serviço de função Extensões ISAPI no seu servidor.)
    Screenshot of Add role services required by A S P dialog box with Web Server I I S selected.
  6. Na página Selecionar Serviços de Função, clique em Avançar.
  7. Na página Confirmar Seleções de Instalação, clique em Instalar.
  8. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.

  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.

  3. Expanda Serviços de Informações da Internet, em seguida, World Wide Web Services e Recursos de Desenvolvimento de Aplicativos.

  4. Selecione ASP e clique em OK.

    Screenshot of Internet Information Services and Application Development Features pane expanded with A S P selected.

Instruções

Como definir as configurações de estado de sessão do ASP para um site ou aplicativo

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e navegue até o site ou aplicativo Web que você deseja configurar.

  3. No painel Página Inicial do site ou aplicativo, clique duas vezes em ASP.
    Screenshot of Home pane showing A S P selected.

  4. No painel ASP, expanda a seção Propriedades Com Plus e defina as configurações desejadas.
    Screenshot of A S P pane displaying Com Plus Properties section highlighted.

  5. Clique em Aplicar no painel Ações.

Configuração

Atributos

Atributo Descrição
appServiceFlags Atributo de sinalizadores opcionais.

Contém os sinalizadores que devem ser definidos para habilitar serviços COM+ em seus aplicativos IIS.

O atributo appServiceFlags pode ter um dos valores possíveis a seguir. O valor padrão é None.
Valor Descrição
None Especifica que nenhum sinalizador está em definido.

O valor numérico é 0.
EnableTracker Definir esse sinalizador habilita o rastreador COM+, que permite aos administradores ou desenvolvedores depurar aplicativos ASP.

O valor numérico é 1.
EnableSxS Definir esse sinalizador habilita assemblies lado a lado COM+, que permitem que os aplicativos ASP especifiquem qual versão de um componente com clássico ou DLL do sistema usar, como WinHTTP 5.1, Shell Common Controls versão 6.0 (Comctl32.dll), GDI Plus versão 1.0 (GDIplus.dll) e Bibliotecas em tempo de execução do Visual C++ versão 6.0. Se esse sinalizador estiver definido, você também deverá especificar um valor para o atributo sxsName.

O valor numérico é 2.
UsePartition Definir esse sinalizador habilita o particionamento COM+, que pode ser usado para isolar aplicativos Web em suas próprias partições COM+. As partições COM+ podem conter versões diferentes de seus próprios componentes COM personalizados. Se esse sinalizador estiver definido, você também deverá especificar um valor para o atributo partitionId.

O valor numérico é 4.
executeInMta Atributo booliano opcional.

Especifica se o ASP é executado em um ambiente multithread.

O valor padrão é false.
partitionId Atributo de cadeia de caracteres opcional.

Especifica o Identificador Global Exclusivo da partição COM+.

Observação: esse atributo é necessário quando o atributo appServiceFlags é definido como UsePartition

O valor padrão é 00000000-0000-0000-0000-000000000000.
sxsName Atributo de cadeia de caracteres opcional.

Observação: esse atributo é necessário quando o atributo appServiceFlags é definido como EnableSxS.

Especifica o nome do aplicativo COM+.
trackThreadingModel Atributo booliano opcional.

Especifica se a verificação de modelo de thread está habilitada. Um valor true significa que o IIS respeita o modelo de threading dos componentes que um aplicativo cria.

O valor padrão é false.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir mostra como configurar o IIS para habilitar a verificação de modelo de thread e configurar o ASP para execução em um compartimento multithreaded.

<configuration>
   <system.webServer>
      <asp>
         <comPlus trackThreadingModel="true" executeInMta="true" />
      </asp>
   </system.webServer>
</configuration>

Exemplo de código

Os exemplos de código a seguir mostram como configurar o IIS para habilitar a verificação de modelo de thread e configurar o ASP para execução em um compartimento multithreaded.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /comPlus.trackThreadingModel:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /comPlus.executeInMta:"True" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection aspSection = config.GetSection("system.webServer/asp", "Default Web Site");

         ConfigurationElement comPlusElement = aspSection.GetChildElement("comPlus");
         comPlusElement["trackThreadingModel"] = true;
         comPlusElement["executeInMta"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim aspSection As ConfigurationSection = config.GetSection("system.webServer/asp", "Default Web Site")

      Dim comPlusElement As ConfigurationElement = aspSection.GetChildElement("comPlus")
      comPlusElement("trackThreadingModel") = True
      comPlusElement("executeInMta") = True

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var comPlusElement = aspSection.ChildElements.Item("comPlus");
comPlusElement.Properties.Item("trackThreadingModel").Value = true;
comPlusElement.Properties.Item("executeInMta").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set comPlusElement = aspSection.ChildElements.Item("comPlus")
comPlusElement.Properties.Item("trackThreadingModel").Value = True
comPlusElement.Properties.Item("executeInMta").Value = True

adminManager.CommitChanges()