C#/ WCF:通过元数据端点填充和使用ServiceInterface

时间:2011-11-10 09:43:06

标签: c# .net wcf

我得到了一个服务,它提供了一个命名管道作为第三方应用程序的连接点/端点地址。

到目前为止我所做的是:

Uri[] baseAddress = new Uri[]{
new Uri("net.pipe://localhost")};

string PipeName = "Calculator";

serviceHost = new ServiceHost(typeof(CalculatorImplementation), baseAddress);

// Add a mex endpoint 
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/CalculatorServer");
serviceHost.Description.Behaviors.Add(smb);

serviceHost.AddServiceEndpoint(typeof(ICalculator), new NetNamedPipeBinding(), PipeName);

serviceHost.Open();

我正在使用像这样的ChannelFactory连接我的客户端:

ChannelFactory<ICalculator> pipeFactory = new ChannelFactory<ICalculator>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/Calculator"));

ICalculator pipeProxy = pipeFactory.CreateChannel();

但实际上我想知道是否有更“平常”的方式来连接服务。 我是否真的需要告诉每个第三方应用程序我的命名管道的“连接字符串”/端点地址(“net.pipe:// localhost / Calculator”)?

我认为可能有更好的方法来实现这一目标,但到目前为止我还没有找到办法。

我已经创建了“mex端点”,但我不确定如何使用此端点来填充命名管道。

我的问题是: 我正确地填充服务界面? 和 如何在客户端应用程序中使用元数据端点?

0 个答案:

没有答案