以编程方式编辑 System.Servicemodel 值?

发布于 2024-11-24 03:57:17 字数 333 浏览 0 评论 0原文

使用 WCF 时,web.config 中有如下部分。

<system.serviceModel>
   <services>
      <service name="abc">
        <endpoint /> <---this
      </service>
   </services>
</system.serviceModel>

是否可以以编程方式编辑我标记的区域?

我可以看到有一个 sytem.serviceModel 命名空间,但除此之外我有点迷失。

When using WCF, there is a section in the web.config as below.

<system.serviceModel>
   <services>
      <service name="abc">
        <endpoint /> <---this
      </service>
   </services>
</system.serviceModel>

Is it possible to edit the area I've marked programmatically?

I can see there is a sytem.serviceModel namespace, but other than that I'm a bit lost.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何其悲哀 2024-12-01 03:57:17

如果您想在运行时更改这些参数,您可以重写 ServiceHost.OnOpening()
例如更改端口:

protected override void OnOpening()
{
    foreach (ServiceEndpoint endpoint in Description.Endpoints)
    {
        string uriString = string.Format("{0}://{1}:{2}{3}",
            endpoint.Address.Uri.Scheme,
            endpoint.Address.Uri.Host,
            endpoint.Address.Uri.Port + _basePort,
            endpoint.Address.Uri.LocalPath);

        endpoint.Address = new EndpointAddress(uriString);
    }

    base.OnOpening();
}

If you want to change these parameters at runtime you can override ServiceHost.OnOpening()
E.g. to change port:

protected override void OnOpening()
{
    foreach (ServiceEndpoint endpoint in Description.Endpoints)
    {
        string uriString = string.Format("{0}://{1}:{2}{3}",
            endpoint.Address.Uri.Scheme,
            endpoint.Address.Uri.Host,
            endpoint.Address.Uri.Port + _basePort,
            endpoint.Address.Uri.LocalPath);

        endpoint.Address = new EndpointAddress(uriString);
    }

    base.OnOpening();
}
白芷 2024-12-01 03:57:17

为了补充 Mike Mozhaev 的答案,由于您的服务托管在 IIS 中,您需要一个 ServiceHostFactory 来获取对服务主机的引用(或使用您自己的主机)。有关它的一些信息位于 http:// /blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspx

To complement Mike Mozhaev's answer, since your service is hosted in IIS you'll need a ServiceHostFactory to get a reference to the service host (or to use your own host). There's some information about it at http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspx.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文