为什么我必须在我的WCF配置中指定我的地址(它实际上正在工作)

时间:2011-06-09 14:22:13

标签: c# wcf web-services

我已经设置了一个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>
然后我写了一个控制台应用来测试服务。

我从浏览器中获取了thr url并从控制台应用程序中添加了一个“服务引用”,我希望该项目能够在我的配置文件中创建enpoint defintions。然后当我创建一个客户端时,我可以加载其中一个配置,但它们不存在......

1 个答案:

答案 0 :(得分:0)

您不必 指定配置中的地址,但在这种情况下,您确实指定了端点的地址(“”)。这意味着WCF将其用作相对于服务基地址的地址。如果服务托管在IIS中,那么它将是.svc文件的地址。如果服务是自托管的(即直接使用ServiceHost),则地址将是传递给ServiceHost构造函数的地址。