У меня есть веб-сервис отдыха WCF. Работает нормально. Я хочу понять различные значения конфигурации, доступные в элементе конечной точки.
В частности, я пытаюсь понять назначение элемента адреса. Изменение значения не влияет на то, как я могу обратиться к службе. Для этого я использую сервис Visual Studio 2010 и Cassini. номер порта установлен на 888.
с адресом, установленным в пустую строку, я получаю ...
http://localhost:888/restDataService.svc/hello вернет "Привет, мир".
с адресом, установленным на "localhost", я получаю ...
http://localhost:888/restDataService.svc/hello вернет "Привет, мир".
с адресом, установленным в "pox", я получаю ...
http://localhost:888/restDataService.svc/hello вернет "привет мир".
Неважно, какое значение я установил в поле адреса. Это не влияет на URL. Мое единственное объяснение, которое я имею, состоит в том, что ценность больше для не-REST услуг.
<system.serviceModel>
<services>
<service behaviorConfiguration="MobileService2.DataServiceBehaviour" name="MobileService2.DataService">
<endpoint address="pox" binding="webHttpBinding" contract="MobileService2.IRestDataService" behaviorConfiguration="webHttp">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MobileService2.DataServiceBehaviour" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
У меня также есть следующий контракт на обслуживание
[ServiceContract]
public interface IRestDataService
{
[OperationContract]
[WebGet(UriTemplate = "hello")]
string Hello();
}
и в .svc
<%@ ServiceHost Language="C#" Debug="true"
Service="MobileService2.RestDataService"
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
CodeBehind="RestDataService.svc.cs" %>
И «код позади»
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestDataService : IRestDataService
{
public string Hello()
{
return "hello";
}
}