我不知道这是否是重复的问题,但由于我的搜索,我找不到任何相关的问题。
我已经制作了WCF服务,但它运行正常。现在我想部署它并将其用作我的项目中的参考,这将在不同的地方使用。
当我想在他的服务器中为客户端安装我的软件时,我需要将基地址更改为服务器中的相应IP地址。另外,不同客户端的不同服务器可能有不同的IP地址,我不想为每个客户端部署一个具有特定基地址的wcf服务。
您能提出任何建议,并告诉我这方面的最佳解决方案。
请
在我的服务中,我使用两个基本地址,如下所示:
<add baseAddress="localhost:8080/"/>;
另一个像net.tcp绑定一样。我想知道在我的服务部署在客户端服务器中时如何使用IP地址而不是localhost
答案 0 :(得分:0)
在Visual Studio中的应用程序项目源代码中,您将拥有app.config或web.config或您添加的类似.config文件。我假设在您的部署代码(您的Windows服务,PowerShell或其他)中,您正在目标服务器或计算机上创建此.CONFIG文件的副本。
因此,在您的原始(项目源代码版本)中,您有令牌而不是实际的服务器名称或IP地址。例如,如果您的实际主机名是&#34; localhost&#34;,而不是
<add baseAddress="localhost:8080/" />
你应该:
<add baseAddress="[ServerName]:[Port]/" />
其中&#34; [ServerName]&#34;和#34; [港口]&#34;是以后要替换的令牌。在部署脚本中,查找这些令牌并将其替换(简单字符串替换)与实际服务器的DNS名称或IP地址。您可以从用于从Windows服务部署到该服务器的任何机制获取服务器名称或IP地址。
希望它有所帮助,如果您需要更多帮助,请告诉我。
答案 1 :(得分:0)
<add baseAddress="net.tcp://xx.xx.xxx.xxx:808/">
<add baseAddress="http://xx.xx.xxx.xxx:8080/">
第一个用于TCP,第二个用于http绑定,其中xx.xx.xxx.xxx是托管服务的ip。
答案 2 :(得分:0)
在服务器方面,您需要将其放入配置文件(app.config
或web.config
)中:
<services>
<service name="YourServiceNameHere" ......>
<host>
<baseAddresses>
<add baseAddress="http://YourServerName:Port/SameBaseUrl"/>
<add baseAddress="net.tcp://YourServerName:Port/SameBaseUrlForTcp"/>
</baseAddresses>
</host>
<endpoint name="DefaultEndpoint" address="MyAwesomeService" ... />
.........
</service>
</services>
或任何你想要/需要的东西。
在客户端方面 - 您不能拥有基本地址 - 每个端点必须完全引用一个明确定义的服务器端地址:
<client>
<endpoint name=".."
address="http://YourServerName:Port/SameBaseUrl/MyAwesomeService"
binding="basicHttpBinding"
contract="IYourServiceContract" />
</client>