Birden Fazla Uç Noktası
MultipleEndpoints örneği, bir hizmette birden çok uç nokta yapılandırmayı ve istemciden her uç noktayla nasıl iletişim kuracaklarını gösterir. Bu örnek, Başlarken'i temel alır. Hizmet yapılandırması, sözleşmeyi destekleyen ICalculator
iki uç nokta tanımlayacak şekilde değiştirildi, ancak her birinin farklı bir bağlama kullanarak farklı bir adreste olması. İstemci yapılandırması ve kodu, hizmet uç noktalarının her ikisiyle de iletişim kuracak şekilde değiştirildi.
Not
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
Hizmet Web.config dosyası, her ikisi de aynı ICalculator
sözleşmeyi destekleyen ancak farklı bağlamalar kullanan farklı adreslerde iki uç nokta tanımlayacak şekilde değiştirildi. İlk uç nokta, temel adreste güvenliği etkin olmayan bir basicHttpBinding
bağlama kullanılarak tanımlanır. İkinci uç nokta, Windows kimlik doğrulaması ile WS-Security kullanılarak varsayılan olarak güvenli olan bir wsHttpBinding
bağlama kullanılarak {baseaddress}/secure konumunda tanımlanır.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- This endpoint is exposed at the base address provided by host:
http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- secure endpoint exposed at {base address}/secure:
http://localhost/servicemodelsamples/service.svc/secure -->
<endpoint address="secure"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
her iki uç nokta da istemcide yapılandırılır. Bu uç noktalara, çağıranın istenen uç nokta adını istemcinin oluşturucusuna geçirebilmesi için adlar verilir.
<client>
<!-- Passing "basic" into the constructor of the CalculatorClient
class selects this endpoint.-->
<endpoint name="basic"
address="http://localhost/servicemodelsamples/service.svc"
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- Passing "secure" into the constructor of the CalculatorClient
class selects this endpoint.-->
<endpoint name="secure"
address="http://localhost/servicemodelsamples/service.svc/secure"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
İstemci, aşağıdaki kodda gösterildiği gibi her iki uç noktayı da kullanır.
static void Main()
{
// Create a client to the basic endpoint configuration.
CalculatorClient client = new CalculatorClient("basic");
Console.WriteLine("Communicate with basic endpoint.");
// call operations
DoCalculations(client);
// Close the client and release resources.
client.Close();
// Create a client to the secure endpoint configuration.
client = new CalculatorClient("secure");
Console.WriteLine("Communicate with secure endpoint.");
// Call operations.
DoCalculations(client);
// Close the client and release resources.
client.Close();
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
}
İstemciyi çalıştırdığınızda, her iki uç noktayla etkileşimler görüntülenir.
Communicate with basic endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Communicate with secure endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.
Örneği tek veya makineler arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.