看着别人把WCF服务和web请求结合一起用很爽,可是自己怎么也配置不出来(没有用web host),所以研究了一下wcf的binding的配置

  1. endpoint的 binding必须为webHttpBinding.
  2. Endpoint的behavior中要加入webhttp.

示例配置文件如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<system.web>

<compilation debug="true" />

</system.web>

<!-- When deploying the service library project, the content of the config file must be added to the host's

app.config file. System.Configuration does not support config files for libraries. -->

<system.serviceModel>

<services>

<service name="Services.PlayerService" behaviorConfiguration="bh">

<host>

<baseAddresses>

<add baseAddress = "http://localhost:8731/PlayerService/" />

</baseAddresses>

</host>

<!-- Service Endpoints -->

<!-- Unless fully qualified, address is relative to base address supplied above -->

<endpoint address ="" binding="basicHttpBinding" contract="Contrat.IPlayerService" behaviorConfiguration="web"></endpoint>

<!-- Metadata Endpoints -->

<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->

<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

</service>

</services>

<behaviors>

<endpointBehaviors>

<behavior name="web">

<webHttp/>

</behavior>

</endpointBehaviors>

<serviceBehaviors>

<behavior name="bh">

<!-- To avoid disclosing metadata information,

set the value below to false and remove the metadata endpoint above before deployment -->

<serviceMetadata httpGetEnabled="True"/>

<!-- To receive exception details in faults for debugging purposes,

set the value below to true. Set to false before deployment

to avoid disclosing exception information -->

<serviceDebug includeExceptionDetailInFaults="False" />

 

</behavior>

</serviceBehaviors>

</behaviors>

</system.serviceModel>

</configuration>

posted on 2008-08-05 11:02  以天  阅读(1430)  评论(0编辑  收藏  举报