Vorgehensweise: Konfigurieren von COM+-DiensteinstellungenHow to: Configure COM+ Service Settings

Wird eine Anwendungsschnittstelle durch Verwendung des COM+-Dienskonfigurationstools hinzugefügt oder entfernt, wird die Webdienstkonfiguration innerhalb der Konfigurationsdatei der Anwendung aktualisiert.When an application interface is added or removed by using the COM+ Service Configuration tool, the Web service configuration is updated within the application's configuration file. In der COM+-gehosteten Modus, befindet sich die Datei Application.config im Stammverzeichnis Anwendung (%PROGRAMFILES%\ComPlus Anwendungen\{Appid} ist die Standardeinstellung).In the COM+ hosted mode, the Application.config file is placed in the Application Root Directory (%PROGRAMFILES%\ComPlus Applications\{appid} is the default). In beiden im Internet gehosteten Modi wird die Datei Web.config im angegebenen vroot-Verzeichnis abgelegt.In either of the Web-hosted modes, the Web.config file is placed in the specified vroot directory.

Hinweis

Nachrichtensignaturen sollten zum Schutz vor Manipulation von Nachrichten zwischen einem Client und einem Server verwendet werden.Message signing should be used to protect against tampering of messages between a client and a server. Außerdem sollte Verschlüsselung auf Nachrichten- oder Transportebene verwendet werden, um Schutz vor der Offenlegung von Informationen in Nachrichten zu bieten, die zwischen einem Client und einem Server übertragen werden.Also, message or transport layer encryption should be used to protect against information disclosure from messages between a client and a server. Wie bei Windows Communication Foundation (WCF)-Dienste, sollten Sie die Einschränkung verwenden, um die Anzahl der gleichzeitigen Anrufe, Verbindungen, Instanzen und ausstehenden Vorgänge zu begrenzen.As with Windows Communication Foundation (WCF) services, you should use throttling to limit the number of concurrent calls, connections, instances, and pending operations. Dies trägt zur Vermeidung einer übermäßigen Ressourcenbeanspruchung bei.This helps prevent over-consumption of resources. Das Drosselungsverhalten wird durch Dienstkonfigurations-Dateieinstellungen angegeben.Throttling behavior is specified through service configuration file settings.

BeispielExample

Beispiel: Eine Komponente, mit der die folgende Schnittstelle implementiert wird:Consider a component that implements the following interface:

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

Wird die Komponente als Webdienst verfügbar gemacht, sieht der entsprechende verfügbare Dienstvertrag, dessen Vorgaben die Clients entsprechen müssen, folgendermaßen aus:If the component is exposed as a Web service, the corresponding service contract that is exposed, and that clients would need to conform to, is as follows:

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

Hinweis

IID bildet einen Teil des ursprünglichen Namespaces für den Vertrag.IID forms part of the initial namespace for the contract.

Clientanwendungen, die diesen Dienst verwenden, müssen den Vorgaben dieses Vertrags entsprechen und eine Bindung verwenden, die mit der in der Anwendungskonfiguration angegebenen Bindung kompatibel ist.Client applications that use this service would need to conform to this contract, along with using a binding that is compatible with the one specified in the application configuration.

Das folgende Codebeispiel zeigt eine standardmäßige Konfigurationsdatei.The following code example shows a default configuration file. Wird ein Windows Communication Foundation (WCF)-Webdienst, dies entspricht dem standard-Service Model Configuration-Schema und kann bearbeitet werden, auf die gleiche Weise wie andere WCF-Services-Konfigurationsdateien.Being a Windows Communication Foundation (WCF) Web service, this conforms to the standard service model configuration schema and can be edited in the same way as other WCF services configuration files.

Folgende Änderungen sind üblich:Typical modifications would include:

  • Das Ändern der Endpunktadresse vom standardmäßigen Format Anwendungsname/Komponentenname/Schnittstellenname in eine benutzerfreundlichere Form.Changing the endpoint address from the default ApplicationName/ComponentName/InterfaceName form to a more usable form.

  • Ändern den Namespace des Diensts von der Standardeinstellung "http://tempuri.org/InterfaceID" Formular, um eine aussagekräftigere Form.Modifying the namespace of the service from the default "http://tempuri.org/InterfaceID" form to a more relevant form.

  • Das Ändern des Endpunkts, um eine andere Transportbindung zu verwenden.Changing the endpoint to use a different transport binding.

    Bei einem Hosting durch COM+ wird standardmäßig der Transport mittels benannter Pipes verwendet, doch es kann auch ein Datentransportprotokoll wie TCP verwendet werden.In the COM+-hosted case, the named pipes transport is used by default, but an off-machine transport like TCP can be used instead.

<?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>  

Siehe auchSee Also

Integrieren von COM+-AnwendungenIntegrating with COM+ Applications