首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕获WCF服务终结点

如何捕获WCF服务终结点
EN

Stack Overflow用户
提问于 2012-10-24 19:07:14
回答 1查看 155关注 0票数 3

我正在实现一个由IIS托管的WCF服务,它模拟调用者。当我在Web.config-file中配置了服务端点时,一切都能正常工作。

我想以编程方式设置服务端点,但是我遗漏了一些东西,因为调用者没有被模拟(除了这个小细节之外,端点工作得很好)。有没有什么方法可以在代码中捕获从web.config创建的服务端点,以便在调试时可以找到此端点与我以编程方式创建的端点之间的区别?

谢谢,

克里斯蒂安

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-25 13:51:39

您可以使用默认的服务主机工厂从代码中的web.config访问终结点(并可能将调试器附加到IIS进程以查看它包含的内容)。

代码语言:javascript
复制
    public class MyServiceHostFactory : ServiceHostFactory
    {
        protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
        {
            return new MyServiceHost(serviceType, baseAddresses);
        }
    }

    public class MyServiceHost : ServiceHost
    {
        public MyServiceHost(Type serviceType, Uri[] baseAddresses)
            : base(serviceType, baseAddresses)
        {
        }

        protected override void OnOpening()
        {
            // At this point you have access to the endpoint descriptions
            foreach (var endpoint in this.Description.Endpoints)
            {
                Console.WriteLine("Endpoint at {0}", endpoint.Address.Uri);
                Binding binding = endpoint.Binding;
                BindingElementCollection elements = binding.CreateBindingElements();
                foreach (var element in elements)
                {
                    Console.WriteLine("  {0}", element);
                }
            }

            base.OnOpening();
        }
    }

在.svc文件中,指定Factory="YourNamespace.MyServiceHostFactory"属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13047989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档