powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF Restful service & host base address
1 сообщений из 1, страница 1 из 1
WCF Restful service & host base address
    #39601790
WinterGraveyard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наткнулся на следующую непонятную ситуацию: имеется некий WCF restful сервис. Работает он вполне нормально, нареканий к нему никаких нет. Конфиг к нему был стянут и скомпонован из различных примеров и статей по написанию таких сервисов - разумеется, до конца понять, что к чему в этом конфиге, не получилось.
Сам конфиг выглядит примерно так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<system.serviceModel>
  <services>
    <service name="RemotePrint.RemotePrintService" behaviorConfiguration="ServiceBehavior">
      <endpoint binding="webHttpBinding" contract="RemotePrint.IRemotePrintService" behaviorConfiguration="webHttp" />
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      <host>
        <baseAddresses>
          <add baseAddress="http://10.1.230.68:8080/RemotePrintService" />
        </baseAddresses>
      </host>
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="ServiceBehavior">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
      </behavior>
      <behavior>
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
      <behavior name="webHttp">
        <webHttp />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel>


Обращение к сервису делается посредством GET-запросов из приложения на андроиде - т.е. по предоставляемым URL от контрактов методов сервисного интерфейса. Эти запросы формируются динамически, и в них напрямую подставляется IP-адрес хоста сервиса.
Недавно понадобилось внести в сервис некоторые изменения. Поскольку вся логика и контракты сервиса живут в отдельной сборке, я просто захостил сервис в консольном приложении, там же и отлаживал - опять-таки, всё работает прекрасно. Но: я вдруг обратил внимание, что IP-адрес в базовом адресе хоста (host/baseAddress/add/@baseAddress) совсем не совпадает с IP-адресом компьютера, на котором физически работает (разрабатывается и отлаживается) сервис. Заглянул в конфиг на сервере, где расположена релизная версия сервиса - то же самое, IP-адрес не имеет ничего общего с реальным IP-адресом сервера. Однако всё работает. Вопрос - почему?
На рантайме базовый адрес хоста не меняется, это проверено. Думал, этот адрес в WCF restful не нужен, и убрал его - нет, нужен, без него старт сервиса валится с ошибкой

Код: plaintext
1.
2.
System.InvalidOperationException: Для конечной точки с
 привязкой WebHttpBinding не удалось найти базовый адрес, соответствующий схеме http.
 Зарегистрированные схемы базовых адресов - [].
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF Restful service & host base address
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]