2013-06-02 4 views
0

Я создал простую службу WCF и сконфигурировал ее конечную точку, как показано ниже.Роль baseAddress при конфигурировании службы WCF EndPoint

<services> 
    <service name="AsynchWCFService.MathOperation"> 
    <endpoint address="MathsOperation" binding="wsHttpBinding" contract="AsynchWCFService.IMathOperation"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses>    
     <add baseAddress="http://localhost:8080/OperationService/" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 

Я принимал эту услугу WCF в автономном exe. Я ожидаю, что моя услуга будет доступна по адресу ниже.

http://localhost:8080/OperationService/MathsOperation/ 

Но услуга доступна на http://localhost:8080/OperationService/

Я хочу получить доступ с помощью службы http://localhost:8080/OperationService/MathsOperation/ ссылки. Может кто-нибудь мне помочь?

+0

Вы пробовали указать абсолютный путь: ' rae1

+0

@ rae1n Спасибо. Я пробовал это и работал нормально. Но я просто хочу понять, как работает относительная адресация. – user2243747

ответ

2

Я не думаю, что ваш сервис доступен по телефону http://localhost:8080/OperationService. То, что вы видите, есть только HTML-страница, созданная WCF, которая описывает доступные конечные точки mex или путь к WSDL. Эти конечные точки mex описывают ABC вашей службы WCF, где A = адрес =>http://localhost:8080/OperationService/MathsOperation/. Потенциальные клиенты знают о вашем URL-адресе службы, запрашивая конечную точку mex.

По умолчанию эта HTML-страница будет отображаться на вашем базовом адресе. Однако вы можете отключить эту страницу или установить ее для отображения на другом URL-адресе, используя поведение serviceDebug.

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior> 
       <serviceDebug httpHelpPageUrl="http://localhost:8080/OperationService/myhelppage" 
           /> <!-- use httpHelpPageEnabled="false" to disable the page --> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

К сожалению, я не думаю, что вы можете установить httpHelpPageUrl на тот же адрес в качестве конечной точки службы.

+0

да, вы правы. Я проверил файл .config клиента, и его адрес «http: // localhost: 8080/OperationService/MathsOperation» Спасибо. – user2243747

Смежные вопросы