为什么我必须在WCF配置中指定我的地址(它实际上正在工作)
本文关键字:地址 实际上 我的 工作 WCF 配置 为什么 | 更新日期: 2023-09-27 17:58:42
我已经设置了一个wcf服务,当我浏览到.svc文件时,我会看到一个屏幕,上面写着。。。
您已经创建了一个服务。
所以我知道该服务正在成功运行。然而,我查看了配置,它实际上没有地址。
<system.serviceModel>
<services>
<service behaviorConfiguration="CountryProvinceBehavior" name="CountryProvinceWCFService">
<endpoint address="" binding="webHttpBinding" contract="ICountryProvinceWCFService" behaviorConfiguration="CountryProvinceBehavior"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CountryProvinceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="CountryProvinceBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
然后我编写了一个控制台应用程序来测试该服务。
我从浏览器中获得了url,并从控制台应用程序中添加了一个"服务参考",我希望该项目在我的配置文件中创建enpoint定义。然后,当我创建客户端时,我可以加载其中一个配置,但它们不存在。。。。
您不必在配置中指定地址,尽管在本例中您确实指定了端点的地址(")。这意味着WCF将使用它作为相对于服务基地址的地址。如果服务托管在IIS中,那么它将是.svc文件的地址。如果服务是自托管的(即直接使用ServiceHost
),那么地址将是传递给ServiceHost
构造函数的地址。