Sdílet prostřednictvím


Postupy: Konfigurace nastavení služby modelu COM+

Při přidání nebo odebrání aplikačního rozhraní pomocí nástroje Konfigurace služby modelu COM+ se konfigurace webové služby aktualizuje v rámci konfiguračního souboru aplikace. V režimu hostovaného com+ je soubor Application.config umístěn v kořenovém adresáři aplikace (%PROGRAMFILES%\ComPlus Applications\{appid} je výchozí). V některém z režimů hostovaných webem se soubor Web.config umístí do zadaného adresáře vroot.

Poznámka:

Podepisování zpráv by mělo být použito k ochraně před manipulací zpráv mezi klientem a serverem. Šifrování vrstvy zpráv nebo přenosové vrstvy by také mělo být použito k ochraně před únikem informací ze zpráv mezi klientem a serverem. Stejně jako u služeb WCF (Windows Communication Foundation) byste měli omezit počet souběžných volání, připojení, instancí a čekajících operací pomocí omezování. To pomáhá zabránit nadměrné spotřebě prostředků. Chování omezování se určuje prostřednictvím nastavení konfiguračního souboru služby.

Příklad

Zvažte komponentu, která implementuje následující rozhraní:

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

Pokud je komponenta vystavena jako webová služba, odpovídající kontrakt služby, který je vystavený a že klienti by potřebovali splňovat, je následující:

[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);  
}  

Poznámka:

IID tvoří součást počátečního oboru názvů smlouvy.

Klientské aplikace, které používají tuto službu, by potřebovaly splňovat tento kontrakt spolu s použitím vazby, která je kompatibilní s vazbou zadanou v konfiguraci aplikace.

Následující příklad kódu ukazuje výchozí konfigurační soubor. Jedná se o webovou službu WCF (Windows Communication Foundation), která odpovídá standardnímu schématu konfigurace modelu služby a dá se upravovat stejným způsobem jako jiné konfigurační soubory služeb WCF.

Mezi typické úpravy patří:

  • Změna adresy koncového bodu z výchozího formuláře ApplicationName/ComponentName/InterfaceName na použitelnější formulář

  • Úprava oboru názvů služby z výchozího http://tempuri.org/InterfaceID formuláře na relevantnější formulář

  • Změna koncového bodu tak, aby používal jinou přenosovou vazbu.

    V případě hostovaného modelu COM+se ve výchozím nastavení používá přenos pojmenovaných kanálů, ale místo toho je možné použít přenos mimo počítač, jako je 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>  

Viz také