【发布时间】:2011-08-05 14:18:32
【问题描述】:
当我部署我的 WCF 服务时,wsdl 显示为 导入http://hostname/servicename/xsd 我怎样才能让它有IP地址而不是主机名。 与浏览到 svc 文件时列出的 wsdl url 相同。
【问题讨论】:
当我部署我的 WCF 服务时,wsdl 显示为 导入http://hostname/servicename/xsd 我怎样才能让它有IP地址而不是主机名。 与浏览到 svc 文件时列出的 wsdl url 相同。
【问题讨论】:
您可以做的一些事情:
1. 将端点的地址更改为使用 ip 而不是主机名 - 这将在 iis 之外托管时起作用。
2.如果此更改的目的是允许用户使用服务器的IP添加引用,您可以添加useRequestHeadersForMetadataAddress服务行为,该行为将允许根据客户端用于获取WSDL的地址更改wsdl
【讨论】:
在 IIS 上,您可以执行以下操作。打开CMD,输入:
cscript.exe %systemdrive%\inetpub\adminscripts\adsutil.vbs get w3svc/<Website-ID>/ServerBindings
查看当前绑定
打开CMD,输入:
cscript.exe %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/<Website-ID>/ServerBindings ":<PORT><IP>"
这将导致在 WDSL 中具有 IP:PORT。
您必须先在 IIS 管理器(“站点”)中查找
【讨论】:
查看 Visual Studio 中的服务引用属性,将 url 从主机名更改为 Ip 地址。
一般情况下,你不应该有硬编码的值,没有 IP 地址和名称,你可以将这些设置放在 web.config 或其他配置文件或数据库中,这样你就不必更改了当 IP 地址或主机名发生变化或者您只是部署在其他地方进行测试、生产等时会发生很多事情......
【讨论】: