powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как получить Metadata при использовании net.tcp с привязкой security = Message
1 сообщений из 1, страница 1 из 1
Как получить Metadata при использовании net.tcp с привязкой security = Message
    #39337760
DIM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Возникла сложность, решил перейти с привязки wsHttpBinding на netTcpBinding и сразу возникла проблема, не могу получить метаданные сервиса.
При использовании привязки "HttpSecureBinding" и "CertificateBehavior", конечно <serviceMetadata httpGetEnabled="true" /> всё работает и метаданные получаю без проблем.
При использовании привязки "TcpOpenBinding" и "OpenBehavior", тоже всё работает, но при использовании привязки "TcpUserNameBinding" и "CertificateBehavior" метаданные недоступны.

Как получить метаданные и возможно ли это или для этого надо использовать отдельную точку без шифрования?

Привязки:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 <bindings>
      <netTcpBinding>
        <binding name="TcpOpenBinding">
          <security mode="None">
            <transport clientCredentialType="None"/>
            <message clientCredentialType="None"/>
          </security>
        </binding>
        <binding name="TcpUserNameBinding">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
      </netTcpBinding>
      <wsHttpBinding>
        <binding name="HttpSecureBinding">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>


Поведение:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
      <serviceBehaviors>
        <!-- CertificateBehavior -->
        <behavior name="CertificateBehavior">
          <serviceMetadata httpGetEnabled="false" />
          <serviceCredentials>
            <clientCertificate>
              <authentication certificateValidationMode="None"/>
            </clientCertificate>
            <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Analitics.Validator, Analitics"/>
            <serviceCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySerialNumber" findValue="E59C42B0"/>
          </serviceCredentials>
          <serviceAuthorization principalPermissionMode="Custom">
            <authorizationPolicies>
              <add policyType="Analitics.AuthorizationPolicy, Analitics"/>
            </authorizationPolicies>
          </serviceAuthorization>
        </behavior>
        <behavior name="OpenBehavior">
          <serviceMetadata httpGetEnabled="false"/>
        </behavior>
      </serviceBehaviors>


Точка входа net.tcp
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <services>
      <service behaviorConfiguration="CertificateBehavior" name="Analitics.AnaliticsService" >
        <endpoint binding="netTcpBinding" bindingConfiguration="TcpUserNameBinding" contract="MedComplete.RIS.Analitics.IAnaliticsService" />
        <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://*:9988/Analitics" />
          </baseAddresses>
        </host>
      </service>
    </services>


Точка входа http
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <services>
      <service behaviorConfiguration="CertificateBehavior" name="MedComplete.RIS.Analitics.AnaliticsService">
        <endpoint binding="wsHttpBinding" bindingConfiguration="HttpSecureBinding" contract="MedComplete.RIS.Analitics.IAnaliticsService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="http://*:9988/Analitics" />
          </baseAddresses>
        </host>
      </service>
    </services>
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как получить Metadata при использовании net.tcp с привязкой security = Message
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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