我有一个奇怪的问题:我有一个wcf服务需要在独立的控制台应用程序上由tcp协议托管。代码中的WCF Tcp绑定问题
我已经创建了一个新的控制台应用程序项目,并为我的wcf项目添加了一个lib引用。当我想配置和广播主机时会发生问题。
var Uri = new Uri("net.tcp://myaddress:4322/MyService");
MyServiceHost = new ServiceHost(typeof(ImyService), Uri);
var binding = new NetTcpBinding();
MyServiceHost.AddServiceEndpoint(typeof(IImageExchangeService), binding, "");
var mexBinding = MetadataExchangeBindings.CreateMexTcpBinding();
MyServiceHost.AddServiceEndpoint(typeof(IMetadataExchange),mexBinding, "");
ServiceMetadataBehavior serviceBehavior = new ServiceMetadataBehavior();
serviceBehavior.HttpGetEnabled = true;
serviceBehavior.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
MyServiceHost.Description.Behaviors.Add(serviceBehavior);
当谈到开主机,我得到这个消息:
合同名称“IMetadataExchange接口”可以 不是由服务WcfService.Ser 执行合同的名单中找到vices.MyService。将ServiceMetadataBehavior添加到配置 文件或直接添加到ServiceHost以启用对此合同的支持。
我会强烈建议写一个好'app.config'文件,那就是你有过绑定和行为的更多控制...... –