使用URL调用wcf服务而不是ip或localhost

时间:2019-07-06 07:34:53

标签: c# wcf

我将WCF服务托管在一个静态IP上,但是当网络断开连接时,系统的动态IP发生了变化,因此我的服务停止工作。

现在,我要使用的不是IP地址或本地主机,而是要使用URL呼叫服务。

这是我的web.con文件代码

<system.serviceModel>
<services>
    <service name="abc.bca" behaviorConfiguration="mexendpoint">
      <endpoint address="" binding="basicHttpBinding" contract="abc.Ibca">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost/bca.svc" />
        </baseAddresses>
      </host>
    </service>
</services>

这是我定义通过移动应用程序调用的IP地址的方式,假设下面是我的静态IP。

117.87.21.12

因此,除了调用静态IP之外,我还可以将其重定向到任何网址,例如techit @ .com

1 个答案:

答案 0 :(得分:0)

该问题与域名系统有关。通常,我们可以使用计算机名称来调用该服务。

  

http://myserverhostname:xxx/service.svc

如果要添加自定义域名,则应该对DNS系统有所了解,
https://en.wikipedia.org/wiki/Domain_Name_System
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/reviewing-dns-concepts
例如,由于要递归分析“域名系统”,因此我们要使用定制名称访问计算机,因此应确保其位于正确的dns名称中。 我想与您分享的另一件事是,在解析域名后,将优先使用本地“主机”文件。因此,我们可以通过在文件中添加一个条目(位于System32 / drivers / etc / hosts文件中)来实现此目的。您可以参考以下链接。
https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/
随时让我知道是否有什么可以帮助您的。