【问题标题】:Add scope and extension to endpoint in code在代码中向端点添加范围和扩展
【发布时间】:2013-05-23 12:51:50
【问题描述】:

我的 WCF 服务有一个发现端点。

在我的发现客户端中,我需要搜索特定类型的所有服务。 为此,我正在考虑使用 Scope 功能和 WCF 服务元数据扩展。

// Create DiscoveryClient
DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
// Find ICalculatorService endpoints            
FindCriteria findCriteria = new FindCriteria(typeof(IAgent));
findCriteria.Duration = TimeSpan.FromSeconds(5);
findCriteria.Scopes.Add(new Uri("net.tcp://cybertech.com/CallTesting/AgentService/1/Cisco"));
FindResponse findResponse = discoveryClient.Find(findCriteria);

是否可以在代码中配置服务端点元数据,例如 Scope 和 Extensions。 如果是,那么 API 是什么?我在互联网上没有找到太多。

我需要代码内解决方案,因为我在代码中托管服务并且我没有使用 XML 配置。

【问题讨论】:

    标签: c# .net wcf wcf-binding wcf-security


    【解决方案1】:

    找到将其添加到代码中的解决方案:

    var address = CommonMethods.GetIpLocalAddress();
    
                _host = new ServiceHost(typeof(AgentService), new Uri(string.Format("net.tcp://{0}/AgentService", address)));
    
                var endpoint = _host.AddServiceEndpoint(typeof(IAgent), new NetTcpBinding(), String.Empty);
    
                var metadataProvider = new CiscoMetaDataProvider();
    
                var discoveryBehavior = new EndpointDiscoveryBehavior();
                discoveryBehavior.Scopes.Add(new Uri("net.tcp://blablabla.com/CallTesting/AgentService/1/Cisco"));
                discoveryBehavior.Extensions.Add(new XElement("phoneNumber", metadataProvider.GetPhoneNumber()));
    
                endpoint.Behaviors.Add(discoveryBehavior);
    
                var discoveryEndpoint = new UdpDiscoveryEndpoint();
    
                _host.AddServiceEndpoint(discoveryEndpoint);
    
                ServiceDiscoveryBehavior serviceDiscoveryBehavior = new ServiceDiscoveryBehavior();
    
                serviceDiscoveryBehavior.AnnouncementEndpoints.Add(new UdpAnnouncementEndpoint());
    
                _host.Description.Behaviors.Add(serviceDiscoveryBehavior);
    
                _host.Open();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 2014-09-20
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多