App.config重写的WCF基址

时间:2015-11-04 17:05:22

标签: c# .net wcf

今天我开始钻研WCF。我参加了https://msdn.microsoft.com/en-us/library/ms734712(v=vs.110).aspx

的教程

我浏览了本教程,直到您托管服务主机。教程段here告诉我启动服务,然后导航到代码中指定的uri。当我这样做时,我的联系被拒绝了。经过一段时间的乱搞,我发现基本地址在app.config中被指定为完全不同的东西。导航到该URI后跟端点名称将我带到了我想去的地方。我不知道该地址是如何产生的,并不是那么关心。我更感兴趣的是什么目的设置服务上的基本URI,当它看起来没有任何影响,并且使用的实际基URI来自app.config。这是ServiceHost类型的构造函数所需要的...所以你会认为它很重要。谁可以给我解释一下这个?

1 个答案:

答案 0 :(得分:1)

如果仔细查看期望Uris的ServiceHost的两个构造函数,则Uri参数的前缀为params

在C#中,这意味着您可以根据需要传递任意数量的Uris,包括零。

如果你想使用app.config,那么传递no Uri很有意思。

如果没有配置,则传递类型或对象以及一些Uris 然后,WCF创建一个服务,在所有Uris上公开服务的所有接口。

例如,如果您在服务中有两个接口并且您致电:

var host = new ServiceHost(typeof(HelloService), 
                       "net.tcp://localhost:7000/service1", 
                       "net.pipe://localhost:8000/service1", 
                       "http://localhost:9000/service1");

您将获得2x3暴露端点

大部分时间ServiceHost都是在不提供地址的情况下构建的。

Config是用XML制作的。

此致