Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
UdpActivation örneğiAktarım: UDP örneğini temel alır. Aktarım: UDP örneğini, Windows İşlem Etkinleştirme Hizmeti (WAS) kullanarak işlem etkinleştirmeyi destekleyecek şekilde genişletir.
Örnek üç ana parçadan oluşur:
Udp Protokolü Etkinleştiricisi, etkinleştirilecek uygulamalar adına UDP iletileri alan tek başına bir işlemdir.
İleti göndermek için UDP özel aktarımını kullanan bir istemci.
UDP özel taşıma üzerinden mesajlar alan ve WAS tarafından etkinleştirilen bir çalışan işleminde barındırılan bir hizmet.
UDP Protokolü Etkinleştiricisi
UDP Protokolü Etkinleştiricisi, WCF istemcisi ile WCF hizmeti arasındaki bir köprüdür. Aktarım katmanındaki UDP protokolü aracılığıyla veri iletişimi sağlar. İki ana işlevi vardır:
Was Dinleyici Bağdaştırıcısı (LA), gelen iletilere yanıt olarak işlemleri etkinleştirmek için WAS ile birlikte kullanılır.
Etkinleştirilecek uygulamalar adına UDP iletilerini kabul eden UDP Protokolü Dinleyicisi.
Etkinleştiricinin sunucu makinesinde tek başına bir program olarak çalışıyor olması gerekir. Normalde WAS dinleyici bağdaştırıcıları (NetTcpActivator ve NetPipeActivator gibi) uzun süre çalışan Windows hizmetlerinde uygulanır. Ancak, basitlik ve netlik için, bu örnek tek başına bir uygulama olarak protokol etkinleştiricisini uygular.
WAS Dinleyici Bağdaştırıcısı
UDP için WAS Dinleyici Bağdaştırıcısı UdpListenerAdapter sınıfında uygulanmıştır. UDP protokolü için uygulama etkinleştirme gerçekleştirmek üzere WAS ile etkileşim kuran modüldür. Bu, aşağıdaki Webhost API'leri çağrılarak elde edilir:
WebhostRegisterProtocolWebhostUnregisterProtocolWebhostOpenListenerChannelInstanceWebhostCloseAllListenerChannelInstances
Başlangıçta WebhostRegisterProtocol çağrıldıktan sonra, dinleyici bağdaştırıcısı applicationHost.config dosyasında kayıtlı tüm uygulamalar için WAS'den ApplicationCreated geri çağrısını alır (%windir%\system32\inetsrv konumunda bulunur). Bu örnekte, uygulamaları yalnızca UDP protokolü ("net.udp" olarak protokol kimliğiyle) etkin olarak işleriz. Bu tür uygulamalar uygulamadaki dinamik yapılandırma değişikliklerine yanıt verirse (örneğin, bir uygulama devre dışı durumdan etkine geçirildiğinde) diğer uygulamalar bunu farklı şekilde işleyebilir.
Geri çağırma ConfigManagerInitializationCompleted alındığında, bunun WAS'nin protokol başlatılması için tüm bildirimleri tamamladığını gösterdiği anlaşılır. Şu anda, dinleyici bağdaştırıcısı etkinleştirme isteklerini işlemeye hazırdır.
Bir uygulama için ilk kez yeni bir istek geldiğinde, dinleyici bağdaştırıcısı WAS'yi çağırır WebhostOpenListenerChannelInstance ve bu da henüz başlatılmamışsa çalışan işlemini başlatır. Ardından protokol işleyicileri yüklenir ve dinleyici bağdaştırıcısı ile sanal uygulama arasındaki iletişim başlatılabilir.
Dinleyici adaptörü, %SystemRoot%\System32\inetsrv\ApplicationHost.config dizinindeki <listenerAdapters> bölümünde şu şekilde kaydedilir:
<add name="net.udp" identity="S-1-5-21-2127521184-1604012920-1887927527-387045" />
Protokol Dinleyicisi
UDP protokolü dinleyicisi, sanal uygulama adına bir UDP uç noktasında dinleyen protokol etkinleştiricisinin içindeki bir modüldür. sınıfında UdpSocketListeneruygulanır. Uç nokta, bağlantı noktası numarasının sitenin protokol bağlamasından ayıklandığı şekilde IPEndpoint temsil edilir.
Denetim Hizmeti
Bu örnekte, etkinleştirici ile WAS çalışan işlemi arasında iletişim kurmak için WCF kullanıyoruz. Etkinleştiricide bulunan hizmete Denetim Hizmeti adı verilir.
Protokol İşleyicileri
Dinleyici bağdaştırıcısı çağrısı WebhostOpenListenerChannelInstanceyaptıktan sonra, başlatılmamışsa WAS işlem yöneticisi çalışan işlemini başlatır. Çalışan işleminin içindeki uygulama yöneticisi, UDP Proses Protokolü İşleyicisi'ni (PPH) bu ListenerChannelId isteğiyle yükler. Sırasıyla PPH, IAdphManager öğesini çağırır.
StartAppDomainProtocolListenerChannel udp AppDomain Protokol İşleyicisi'ni (ADPH) başlatmak için.
BarındırılanUDPİletimYapılandırması
Bilgiler Web.config'de aşağıdaki gibi kaydedilir:
<serviceHostingEnvironment>
<add name="net.udp" transportConfigurationType="Microsoft.ServiceModel.Samples.Hosting.HostedUdpTransportConfiguration, UdpActivation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6fa904d2da1848d6" />
</serviceHostingEnvironment>
Bu Örnek için Özel Kurulum
Bu örnek yalnızca Windows Vista, Windows Server 2008 veya Windows 7 üzerinde derlenebilir ve çalıştırılabilir. Örneği çalıştırmak için önce tüm bileşenlerin doğru şekilde ayarlanması gerekir. Örneği yüklemek için aşağıdaki adımları kullanın.
Bu örneği ayarlamak için
Aşağıdaki komutu kullanarak ASP.NET 4.0'ı yükleyin.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableProjeyi Windows Vista'da derleyin. Derlemeden sonra, derleme sonrası aşamasında aşağıdaki işlemleri de gerçekleştirir:
UDP bağlamasını "Varsayılan Web Sitesi" sitesine yükler.
Fiziksel yola işaret etmek için "ServiceModelSamples" sanal uygulamasını oluşturur: "%SystemDrive%\inetpub\wwwroot\servicemodelsamples".
Ayrıca bu sanal uygulama için "net.udp" protokollerini etkinleştirir.
Kullanıcı arabirimi uygulamasını "WasNetActivator.exe" başlatın. Kurulum sekmesine tıklayın, aşağıdaki onay kutularını işaretleyin ve ardından yüklemek için Yükle'ye tıklayın:
UDP Dinleyici Bağdaştırıcısı
UDP Protokolü İşleyicileri
"WasNetActivator.exe" kullanıcı arabirimi uygulamasının Etkinleştirme sekmesine tıklayın. Dinleyici bağdaştırıcısını başlatmak için Başlat düğmesine tıklayın. Artık programı çalıştırmaya hazırsınız.
Not
Bu örneği tamamladığınızda, net.udp bağlamasını "Varsayılan Web Sitesinden" kaldırmak için Cleanup.bat çalıştırmanız gerekir.
Örnek Kullanımı
Derlemeden sonra dört farklı ikili dosya oluşturulur:
Client.exe: İstemci kodu. App.config, Client.exe.config istemci yapılandırma dosyasında derlenmiş.
UDPActivation.dll: Tüm önemli UDP uygulamalarını içeren kitaplık.
Service.dll: Hizmet kodu. Bu, ServiceModelSamples sanal uygulamasının \bin dizinine kopyalanır. Hizmet dosyası Service.svc, yapılandırma dosyası ise Web.config dosyasıdır. Derlemeden sonra şu konuma kopyalanır: %SystemDrive%\Inetpub\wwwroot\ServiceModelSamples.
WasNetActivator: UDP etkinleştirici programı.
Gerekli parçaların tümünün doğru yüklendiğinden emin olun. Aşağıdaki adımlarda, örneğin nasıl çalıştırılacakları gösterilmektedir:
Aşağıdaki Windows hizmetlerinin başlatıldığından emin olun:
Windows İşlem Etkinleştirme Hizmeti (WAS).
Internet Information Services (IIS): W3SVC.
Ardından etkinleştiriciyi başlatın WasNetActivator.exe. Etkinleştirme sekmesinin altında, açılan listede tek protokol olan UDP seçilir. Etkinleştiriciyi başlatmak için Başlat düğmesine tıklayın.
Etkinleştirici başlatıldıktan sonra, bir komut penceresinden Client.exe çalıştırarak istemci kodunu çalıştırabilirsiniz. Örnek çıktı aşağıda verilmiştir:
Testing Udp Activation. Start the status service. Sending UDP datagrams. Type a word that you want to say to the server: Hello, world! Sending datagram: Hello, world![0] Sending datagram: Hello, world![1] Sending datagram: Hello, world![2] Sending datagram: Hello, world![3] Sending datagram: Hello, world![4] Calling UDP duplex contract (ICalculatorContract). 0 + 0 = 0 1 + 2 = 3 2 + 4 = 6 3 + 6 = 9 4 + 8 = 12 Getting status and dump server traces: Operation 'Hello' is called: Hello, world![0] Operation 'Hello' is called: Hello, world![1] Operation 'Hello' is called: Hello, world![2] Operation 'Hello' is called: Hello, world![3] Operation 'Hello' is called: Hello, world![4] Operation 'Add' is called: 0 + 0 Operation 'Add' is called: 1 + 2 Operation 'Add' is called: 2 + 4 Operation 'Add' is called: 3 + 6 Operation 'Add' is called: 4 + 8 Press <ENTER> to complete test.