WCF Oda-Vissza kommunikáció

WCF Oda-Vissza kommunikáció
2009-03-22T08:31:02+01:00
2009-03-22T10:06:31+01:00
2022-11-13T00:40:41+01:00
Zacsesz
Üdvözletem!
Arra keresném a választ hogyan lehetne wcf-el oda-vissza kommunikációt létrehozni, azaz a service és a client is tudna üzenetet küldeni....
A kódom egyenlőre csak egy adott kérésre tud válaszolni, ez így jó is de a client-tel nem tudok válaszolni a service kérésére...
Remélem érthető a dolog....
A másik dolog, hogy BasicHttpBinding -et használok, mert itt lehet ntlm hitelesítést használni a biztonság érdekében.
A kódom:

[ServiceContract()] public interface testService { [OperationContract] void Commands(string command, string client); [OperationContract] string getValue(string mValue, string client); } public class testServiceClass : testService { public void Commands(string command, string client) { } public string getValue(string mValue, string client) { string returnValue = null; switch (mValue) { case "Version": returnValue = System.Windows.Forms.Application.ProductVersion; break; default: returnValue = mLang.unknownParamerter; break; } frmList.Console.AddConsoleMessage(Environment.NewLine + "&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;" + Environment.NewLine + mLang.myReturnValueText[0] + ": " + client + Environment.NewLine + mLang.myReturnValueText[1] + ": " + mValue + Environment.NewLine + mLang.myReturnValueText[2] + ": " + returnValue); return returnValue; } } public void StartService() { string serviceUrl = "http://localhost:8000/testService"; try { host = new ServiceHost(typeof(netLyrics_Player.testServiceClass)); host.Opening += (new MsgHandler(mLang.serviceOpening)).MessageText; host.Opened += (new MsgHandler(mLang.serviceOpened)).MessageText; host.Closing += (new MsgHandler(mLang.serviceClosing)).MessageText; host.Closed += (new MsgHandler(mLang.serviceClosed)).MessageText; BasicHttpBinding mBinding = new BasicHttpBinding(); mBinding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; mBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; mBinding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Ntlm; mBinding.TextEncoding = Encoding.UTF8; mBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; mBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate; host.AddServiceEndpoint(typeof(testService), mBinding, serviceUrl); ServiceMetadataBehavior metaDataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>(); if (metaDataBehavior == null) { metaDataBehavior = new ServiceMetadataBehavior(); metaDataBehavior.HttpGetUrl = new Uri("http://localhost:8001/testService"); metaDataBehavior.HttpGetEnabled = true; metaDataBehavior.ToString(); host.Description.Behaviors.Add(metaDataBehavior); } host.Open(); } catch { AddConsoleMessage(mLang.serviceError); MessageBox.Show(mLang.serviceError); } } public void StopService() { try { host.Close(); } catch { return; } }

Az mLang egy nyelvi osztály csak üzeneteket tárol, ez ne zavarjon senkit!
Előre is köszönöm a segítséget!
Zacsesz
Mutasd a teljes hozzászólást!
Szvsz ennek nem lehet akadálya..
Erre jártál már?..(Turóczy Attila Windows Communication Foundation - Elméleti háttér)

Kiemelés a link-ről:

A WCF terminológiában két szereplőről beszélhetünk. Van a szolgáltatás (egy- vagy több végpontot publikál) és van a kliens, amely a szolgáltatások végpontjainak üzeneteket küldeni, és a szolgáltatás végpontoktól üzenetet tud fogadni.

Itt letölthetsz okítókat..(WCF: Browse by Tags)

Segít a gugli is ..(Elosztott rendszerek programozása WCF)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd