2011-01-19 113 views
0

我在生产服务器中的IIS中的inetmgr中托管域/网站(HTTR.abc.com)。 我想域HTTR.abc.com 我的WCF服务的Web.config是如下托管WCF服务时在svcutil中获取机器名称

<services> 
<service behaviorConfiguration="HTTR.Business.HTTRContextServiceBehavior" name="HTTR.Business.HTTRContextService"> 
<endpoint address="http://machinename:83/GTYEBus/abcService.svc" binding="wsHttpBinding" contract="HTTR.Business.IHTTRContextService"> 
</endpoint> 
</service> 
</services> 

当我运行URL “http://HTTR.abc下举办一个WCF服务。 com/GTYEBus/abcService.svc“页面显示正常,但显示为 WSDL文件指向”http:// machinename:83/GTYEBus/abcService.svc?WSDL“

我希望页面显示WSDL具有与.svc路径相同的路径,也就是说它应该显示为“http://HTTR.abc.com/GTYEBus/abcService.svc?WSDL”而不是 “http:// machinename:83/GTYEBus/abcService.svc?WSDL“

回答

1

我在找到解决同一问题的同时遇到了这个问题。

这最终成为一个没有主机名的网站的问题。

在IIS7.5中,只需将主机名添加到绑定的主机头中即可。如果是https,主机头可能会受到保护。您需要将证书变成伪通配符证书,方法是将*作为证书友好名称的开头。然后主机名将是可编辑的。

This link具有分辨率的IIS6

一个很好的说明
0

在web.config的serviceMetadata部分,您可以包含属性externalMetadataLocation,它指的是“http://httr.abc.com/GTYEBus /abcService.svc?wsdl“位置。示例:

<serviceMetadata externalMetadataLocation="http://httr.abc.com/GTYEBus/abcService.svc?wsdl" /> 

以下是serviceMetaData config部分中的MSDN参考:http://msdn.microsoft.com/en-us/library/ms731317.aspx

这不需要任何额外的IIS配置,并且更具可扩展性。

希望这会有所帮助。