gpt4 book ai didi

wcf - 如何捕获 WCF 服务端点

转载 作者:行者123 更新时间:2023-12-04 19:05:09 25 4
gpt4 key购买 nike

我正在实现由 IIS 托管的 WCF 服务,该服务模拟调用者。当我在 Web.config 文件中配置服务端点时,一切都按预期工作。

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

谢谢,

基督徒

最佳答案

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

    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" 属性。

关于wcf - 如何捕获 WCF 服务端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com