Instrukcje: konfigurowanie ustawień usługi COM+
Po dodaniu lub usunięciu interfejsu aplikacji za pomocą narzędzia COM+ Service Configuration konfiguracja usługi sieci Web zostanie zaktualizowana w pliku konfiguracji aplikacji. W trybie hostowanym COM+ plik Application.config jest umieszczany w katalogu głównym aplikacji (%PROGRAMFILES%\ComPlus Applications\{appid} jest wartością domyślną). W jednym z trybów hostowanych w sieci Web plik Web.config jest umieszczany w określonym katalogu vroot.
Uwaga
Podpisywanie komunikatów powinno służyć do ochrony przed manipulowaniem komunikatów między klientem a serwerem. Ponadto szyfrowanie warstwy komunikatów lub transportu powinno być używane do ochrony przed ujawnieniem informacji przed komunikatami między klientem a serwerem. Podobnie jak w przypadku usług Windows Communication Foundation (WCF), należy użyć ograniczania, aby ograniczyć liczbę współbieżnych wywołań, połączeń, wystąpień i oczekujących operacji. Pomaga to zapobiec nadmiernemu zużyciu zasobów. Zachowanie ograniczania przepływności jest określane za pośrednictwem ustawień pliku konfiguracji usługi.
Przykład
Rozważ składnik, który implementuje następujący interfejs:
[Guid("C551FBA9-E3AA-4272-8C2A-84BD8D290AC7")]
public interface IFinances
{
string Debit(string accountNo, double amount);
string Credit(string accountNo, double amount);
}
Jeśli składnik jest uwidoczniony jako usługa sieci Web, odpowiedni kontrakt usługi, który jest uwidoczniony, i że klienci muszą być zgodni z, jest w następujący sposób:
[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);
}
Uwaga
Identyfikator IID stanowi część początkowej przestrzeni nazw dla kontraktu.
Aplikacje klienckie korzystające z tej usługi będą musiały być zgodne z tą umową wraz z użyciem powiązania zgodnego z powiązaniem określonym w konfiguracji aplikacji.
Poniższy przykład kodu przedstawia domyślny plik konfiguracji. Jako usługa sieci Web programu Windows Communication Foundation (WCF) jest zgodna ze standardowym schematem konfiguracji modelu usług i może być edytowana w taki sam sposób, jak inne pliki konfiguracji usług WCF.
Typowe modyfikacje obejmują:
Zmiana adresu punktu końcowego z domyślnego formularza ApplicationName/ComponentName/InterfaceName na bardziej użyteczny formularz.
Modyfikowanie przestrzeni nazw usługi z formularza domyślnego
http://tempuri.org/InterfaceID
na bardziej odpowiedni formularz.Zmiana punktu końcowego na użycie innego powiązania transportu.
W przypadku modelu COM+-hosted transport nazwanych potoków jest używany domyślnie, ale zamiast tego można użyć transportu poza maszyną, takiego jak 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>