我已经在我的应用中导入了很多wcf服务。 例如
<endpoint address="http://localhost:1044/PersonSearchWebService.svc" behaviorConfiguration="ClientBehavior"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IPersonSearchWebService"
contract="WSPersonSearch.IPersonSearchWebService" name="BasicHttpBinding_IPersonSearchWebService" />
<endpoint address="http://localhost:1044/TransferService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITransferService"
contract="WSFileTransfer.ITransferService" name="BasicHttpBinding_ITransferService" />
<endpoint address="http://localhost:1044/ScannedFileSearchWebService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IScannedFileSearchWebService"
contract="WSScannedFileSearch.IScannedFileSearchWebService"
name="BasicHttpBinding_IScannedFileSearchWebService" />
它们共享相同的服务器地址。 我可以把它们拉成一个变量,因此我只需要在移动到实时服务器时在一个空间中修改配置吗?
由于
答案 0 :(得分:3)
您可以在服务配置中定义基本地址,然后根据该基址在端点中使用相对地址:
<service name=".....">
<host>
<baseAddresses>
<add baseAddress="http://localhost:1044/" />
</baseAddresses>
</host>
<endpoint name="BasicHttpBinding_IPersonSearchWebService"
address="PersonSearchWebService.svc"
behaviorConfiguration="ClientBehavior"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IPersonSearchWebService"
contract="WSPersonSearch.IPersonSearchWebService" />
<endpoint name="BasicHttpBinding_ITransferService"
address="TransferService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ITransferService"
contract="WSFileTransfer.ITransferService" />
<endpoint name="BasicHttpBinding_IScannedFileSearchWebService"
address="ScannedFileSearchWebService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IScannedFileSearchWebService"
contract="WSScannedFileSearch.IScannedFileSearchWebService" />
</service>
更新:遗憾的是,此功能仅适用于服务器端 - 客户端配置没有等效功能。
在客户端上,您需要全部拼出所有网址 - 即使他们共享例如服务器名称和端口。