Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
8i
16 / 1 / 1
Регистрация: 21.02.2013
Сообщений: 72
1
.NET 4.x

Понимание endpoint. Бинарная и небинарная передачи данных

20.07.2015, 17:36. Показов 1437. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Появилась пара вопросов касаемо конфигурационных файлов.
1) Есть сервис, в нём я прописываю кастомную привязку для бинарной передачи данных:
Кликните здесь для просмотра всего текста

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>
  <system.web>
    <compilation debug="true" />
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
      </providers>
    </roleManager>
  </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>
    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <binaryMessageEncoding />
          <httpTransport />
        </binding>
      </customBinding>
    </bindings>
    <services>
      <service name="WcfServiceLibrary1.Service1">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />
          </baseAddresses>
        </host>
        <!-- Service Endpoints -->
        <!-- Unless fully qualified, address is relative to base address supplied above -->
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="WcfServiceLibrary1.IService1">
          <!-- 
              Upon deployment, the following identity element should be removed or replaced to reflect the 
              identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
              automatically.
          -->
          <identity>
            <dns value="localhost" />
          </identity>
        </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>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, 
          set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="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>

Почему при запуске встроенного клиента, тестируя метод GetData(), видно, что во вкладке XML информация сериализуется в XML? Может в этом клиенте прописана своя endpoint?
2) Написал клиент. В конфиге клиента сделал бинарную привязку по аналогии. Бинарная сериализация будет в двух направлениях, или только если от клиента передача?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2015, 17:36
Ответы с готовыми решениями:

Небинарная серилизация
Всем привет! =))) Задание преподавателя - написать &quot;контроллер&quot;, который работает следущим...

Бинарная сериализация данных из listBox
Здравствуйте Я перерыл уже кучу документации и форумов, но нигде так и не нашел ответа. Моя цель...

Типы данных С# для передачи данных через TCP
подскажите пожалуйста какой тип переменной лучше всего использовать в C# для передачи данных через...

Ошибка передачи данных
Сижу я значит, никого не трогаю, пишу обработку потихоньку, вызываю функцию &amp;НаСервере. ...

7
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
20.07.2015, 19:59 2
8i, посмотрите тут про передачу больших объемов данных.
https://msdn.microsoft.com/ru-... .110).aspx
1
8i
16 / 1 / 1
Регистрация: 21.02.2013
Сообщений: 72
21.07.2015, 10:53  [ТС] 3
insite2012, прочитал по ссылке... но на кое-какой вопрос не смог найти ответ:
Есть сервис S, с бинарной привязкой B1
Есть клиент C. с бинарной привязкой B2
При отправке инфы от C данные сериализуются бинарно (согласно привязке, определённой в конфиге клиента), S получает, преобразует, сериализует и отправляет. Но вот метод сериализации, который использует сервис при отправке - определяется прявязкой в конфиг файле сервиса или клиента?
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
21.07.2015, 14:14 4
Лучший ответ Сообщение было отмечено 8i как решение

Решение

8i, клиент создается на основании службы (через svcutil или добавление ссылки), и на обеих сторонах используются одни и те же привязки.
1
8i
16 / 1 / 1
Регистрация: 21.02.2013
Сообщений: 72
21.07.2015, 17:14  [ТС] 5
insite2012, да) действительно одни и те же. Нужно всего лишь своевременно обновлять ServiceReference в клиенте путём вызова контекстного меню на ссылке и выбором Update Service Reference, тогда в конфиге клиента появляется привязка с сервера.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
21.07.2015, 17:22 6
Цитата Сообщение от 8i Посмотреть сообщение
да) действительно одни и те же.
Это естественно, поскольку одно из основных понятий WCF - это ABC (address, binding, contract), и они должны быть одинаковыми как у хоста, так и у клиента.
Я сам не пробовал делать разные, но не думаю, что из этого выйдет что-то хорошее.
0
8i
16 / 1 / 1
Регистрация: 21.02.2013
Сообщений: 72
21.07.2015, 17:57  [ТС] 7
Цитата Сообщение от insite2012 Посмотреть сообщение
Я сам не пробовал делать разные, но не думаю, что из этого выйдет что-то хорошее.
Да, тогда возникает либо ProtocolException (если разные привязки), либо ConfigurationErrorsException (если кое-какие параметры привязок отличаются)
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
21.07.2015, 18:04 8
Цитата Сообщение от 8i Посмотреть сообщение
возникает либо ProtocolException (если разные привязки), либо ConfigurationErrorsException (если кое-какие параметры привязок отличаются)
Вот видите.
Хотя и можно написать код клиента самому, но для избежания ошибок и были разработаны такие средства, как svcutil.exe, svcconfigeditor.exe, wcftestcleint.exe и добавление ссылки на службу.
0
21.07.2015, 18:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2015, 18:04
Помогаю со студенческими работами здесь

Протоколы передачи данных
не подскажите когда мы используем в протоколе udp 2 раза sendto() на клиенте это мы передаем 2...

Режимы передачи данных
Здравствуйте! Проблемка с винчестером У меня почему-то винчестер стал работать медленнее,...

Нет передачи данных
Добрый день возникла такая проблема! В сети находятся сервер и две рабочие станции соединенные...

Перехват передачи данных
Всем привет! Есть прога, передающая данные(хттп гет/пост) в эти самые интернеты. Задача перехватить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru