繁体   English   中英

如何将WCF服务绑定到IP地址

[英]how to bind WCF service to IP address

我正在使用VSTS2008 + C#+ .Net 3.5开发由IIS托管的WCF服务。 我发现通过使用“添加服务引用...”从客户端引用服务时,客户端必须能够将计算机名称解析为IP地址,因为WSDL通过计算机名称引用了一些架构文件。 这是WSDL文件一部分的示例,为了从客户端解析WSDL文件以生成代理,我们必须能够将机器名称testmachine1解析为相关的IP地址,

<xsd:import schemaLocation="http://testmachine1/service.svc?xsd=xsd1" 
     namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>

我的问题是,由于某种原因(由于非技术原因)无法始终解析计算机名称,因此我想绑定到托管IIS服务器的IP地址。 可能吗? 如果是的话,不胜感激。 这是我当前的WCF web.config文件,我想知道如何对其进行修改以使其能够与IP地址一起使用,

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Foo.WCF.ServiceBehavior"
        name="Foo.WCF.CustomerManagement">
        <endpoint address="" binding="basicHttpBinding" 
                  contract="Foo.WCF.ICustomerManagement">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" 
                  contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Foo.WCF.ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

预先感谢乔治

如果您的WCF服务托管在IIS中,则不能设置单独的地址。 必须使用SVC文件所在的虚拟目录的URL –通过计算机名( http://yourserver/virtualdir/myservice.svc )或IP( http://123.123.123.123/virtualdir/myservice.svc) )。

如果使用IP添加服务引用,则该IP将在服务导入生成的WSDL中使用。

如果您自己托管WCF服务(Windows服务,控制台应用程序),则可以在config中设置服务地址,并为计算机使用计算机名称或IP。

我遇到了同样的问题,并在寻找自己问题的答案时看到了您的帖子。

我想我可能已经找到了解决方案,那就是将IIS站点绑定更改为ip。 我仍然不明白为什么这不能是.config文件中的设置。

这是我找到的解决方案的链接( http://blogs.msdn.com/wenlong/archive/2007/08/02/how-to-change-hostname-in-wsdl-of-an-iis-hosted -service.aspx )。

这是我的帖子的链接( .NET WCF服务引用使用服务器名称而不是IP地址,在使用时会引起问题 )。

这是我有关找到解决方案的文章的链接( WCF(IIS中的托管服务)-WCF而不是IP?自动获取机器名称 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM