[英]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.