WCF主机地址的问题
当我安装一个Web服务器上的WCF服务,我设置终点地址WCF主机地址的问题
<endpoint address="http://www.mydomin.com/clientname/happy.svc"
binding="basicHttpBinding"
name="happysvcbasic"
contract="happysvc.Ihappysvc">
</endpoint>
但是当在浏览器上面的地址类型,我得到一个不同的主机名,这是内部服务器名称,如
要测试此服务,您需要创建一个客户端并使用它来调用该服务。为此,您可以使用svcutil.exe的工具,从语法如下命令行:
svcutil.exe的http://internalservername.domain/clientname/happy.svc?wsdl
我尝试添加主机/ baseaddress标记,但没有什么区别,有什么我错过了吗?感谢帮助。
当您通过IIS托管您在IIS中的服务时,地址始终是相对的。假设你想实现你的端点的东西删除HTTP://
<endpoint address="clientname"
然后你的终点将是 http://localhost/virtualdirectory/happy.svc/clientname
这种情况的使用是当你暴露多个端点,每个端点有拥有一个唯一的地址。
如果您正在尝试为您的服务设置不同的DNS地址,则需要更改托管网站的方式并使用host headers。
你是对的。我在iis/binding中设置主机头,一切都很好。谢谢 – Fred 2010-04-09 13:42:09
当你在IIS中托管你的WCF服务时,你不会选择地址,所以在你的<endpoint>
中设置address=
是完全没有用的,就像设置基地址一样。
当IIS托管,决定你的WCF服务地址的唯一的东西是:
- IIS服务器的机器名/ IP地址,以及可能的端口号
- 虚拟目录,并可能任何子目录在您
happy.svc
文件位于 - 您的名称* .svc文件本身,包括.svc扩展
所以WCF服务地址会是这样的:
http://yourserver:80/VirtualDirectory/SubDirectory/happy.svc
这就是全部了,你不能改变的(至少不是现在,在WCF 3.5 - 它可能在WCF .NET 4的不同)。
所以现在:你的问题是什么,真的吗?
你的问题是什么? – Pyrolistical 2010-04-08 21:25:24