加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Configure方法时如何在代码中设置WCF基址

发布时间:2020-12-15 22:17:58 所属栏目:百科 来源:网络整理
导读:对于基于代码的纯WCF配置,在.NET 4.0中,可以在创建ServiceHost实例时为服务配置基址(假设自托管方案适合我的需要).虽然人们仍然可以使用.NET 4.5执行此操作,但MSDN意味着使用新的Configure()方法是一种更好的做法,因为它使基于代码的配置对于自托管更容易,并
对于基于代码的纯WCF配置,在.NET 4.0中,可以在创建ServiceHost实例时为服务配置基址(假设自托管方案适合我的需要).虽然人们仍然可以使用.NET 4.5执行此操作,但MSDN意味着使用新的Configure()方法是一种更好的做法,因为它使基于代码的配置对于自托管更容易,并且对于Web托管方案更容易(参见 Configuring WCF Services in Code).

但问题是,虽然您必须在Configure方法(System.ServiceModel.ServiceConfiguration)中使用的对象具有BaseAddresses属性,但它是只读的.当然必须有一种方法来设置代码中的基地址?我的网络搜索不仅没有提到这个特定的问题,而且根本没有关于这个Configure方法的文章或帖子,除了我引用的单个MSDN页面!

解决方法

查看反射器BaseAddresses属性的作用:

// System.ServiceModel.ServiceConfiguration
public ReadOnlyCollection<Uri> BaseAddresses
{
    get
    {
        return this.host.BaseAddresses;
    }
}

我无法在ServiceConfiguration中找到使用ServiceHost.BaseAddresses的任何其他方法

ServiceConfiguration的实例是使用ServiceHost实例创建的:

// System.ServiceModel.ServiceConfiguration
internal ServiceConfiguration(ServiceHost host)
{
    ServiceConfiguration.CheckArgument<ServiceHost>(host,"host");
    this.host = host;
}

这意味着ServiceConfiguration只是配置ServiceHost的标准方式的扩展.所以我建议任何旧的设置BaseAddress的方法仍然被认为是最佳实践(程序化或使用配置).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读