Compartir a través de


Cómo configurar los parámetros de los servicios COM+

Cuando se agrega o quita una interfaz de aplicaciones mediante la herramienta de configuración de servicio de COM+, la configuración del servicio web se actualiza en el archivo de configuración de la aplicación. En el modo hospedado de COM+, el archivo Application.config se encuentra en el directorio raíz de la aplicación (%PROGRAMFILES%\ComPlus Applications\{appid} es el archivo predeterminado). En cualquiera de los modos hospedados en la web, el archivo Web.config se encuentra en el directorio vroot especificado.

Nota

La utilización de la firma de los mensajes protege de la alteración de los mensajes entre el cliente y un servidor. Además, la utilización del cifrado en el nivel del mensaje o del transporte protege contra la divulgación de información de los mensajes entre un cliente y un servidor. Al igual que con los servicios Windows Communication Foundation (WCF), debe utilizarse la limitación de peticiones para restringir el número de llamadas, conexiones, instancias y operaciones pendientes que se producen simultáneamente. Así se contribuye a evitar el consumo excesivo de recursos. El comportamiento del límite de peticiones se especifica mediante los valores del archivo de configuración del servicio.

Ejemplo

Considere un componente que implementa la siguiente interfaz:

[Guid("C551FBA9-E3AA-4272-8C2A-84BD8D290AC7")]
public interface IFinances
{
    string Debit(string accountNo, double amount);
    string Credit(string accountNo, double amount);
}

Si el componente se expone como un servicio web, el contrato de servicios correspondiente que se expone, y con el que los clientes deberán ser compatibles, es como sigue:

[ServiceContract(Session = true,
Namespace = "http://tempuri.org/C551FBA9-E3AA-4272-8C2A-84BD8D290AC7",
Name = "IFinances")]
public interface IFinancesContract : IDisposable
{
    [OperationContract]
    string Debit(string accountNo, double amount);
    [OperationContract]
    string Credit(string accountNo, double amount);
}

Nota

El IID forma parte del espacio de nombres inicial del contrato.

Las aplicaciones cliente que utilizan este servicio deberán ser conformes a este contrato, así como utilizar un enlace compatible con el que se especificó en la configuración de la aplicación.

El siguiente ejemplo de código muestra un archivo de configuración predeterminado. Dado un servicio web Windows Communication Foundation (WCF), esto es conforme al esquema de configuración del modelo de servicio estándar y puede editarse del mismo modo que otros archivos de configuración de servicios WCF.

En las modificaciones típicas se incluye:

  • Cambiar la dirección del punto final del formulario predeterminado ApplicationName/ComponentName/InterfaceName a un formulario más útil.
  • Modificar el espacio de nombres del servicio del formulario predeterminado "http://tempuri.org/InterfaceID" a un formulario más relevante.
  • Cambiar el punto final para utilizar un enlace de transporte diferente.
    En el caso de hospedaje en COM+, se utiliza el transporte de las canalizaciones con nombre de manera predeterminada, aunque en su lugar puede utilizarse un transporte fuera de equipo, tipo TCP.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <netNamedPipeBinding>
                <binding name="comNonTransactionalBinding" />
                <binding name="comTransactionalBinding" transactionFlow="true" />
            </netNamedPipeBinding>
        </bindings>
        <comContracts>
            <comContract contract="{C551FBA9-E3AA-4272-8C2A-84BD8D290AC7}"
                name="IFinances" namespace="http://tempuri.org/C551FBA9-E3AA-4272-8C2A-84BD8D290AC7"
                requiresSession="true">
                <exposedMethods>
                    <add exposedMethod="Debit" />
                    <add exposedMethod="Credit" />
                </exposedMethods>
            </comContract>
        </comContracts>
        <services>
            <service name="{DCDB24CC-0B19-4534-95CD-FBBFF4D67DD9},{C942B840-AD54-4A44-B5F7-928130980AB9}">
                <endpoint address="IFinances" binding="netNamedPipeBinding" bindingConfiguration="comNonTransactionalBinding"
                    contract="{C551FBA9-E3AA-4272-8C2A-84BD8D290AC7}" />
                <host>
                    <baseAddresses>
                        <add baseAddress="net.pipe://localhost/ServiceModelDocSampleApp/ServiceModelDocSample.esFinance" />
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>
</configuration>

Consulte también

Otros recursos

Integración en aplicaciones COM+