wsHttpBinding вернулся к основному httpBinding - PullRequest
2 голосов
/ 04 января 2011

Я создал службу с помощью wsHttpBinding, но каждый раз, когда я загружаю службу, она создает привязку basichttp в конфигурации клиента. Есть идеи почему? thansk

<system.serviceModel>
    <serviceHostingEnvironment/>
    <bindings>

      <wsHttpBinding>
        <binding name="WSHttpBinding" sendTimeout="00:10:00" receiveTimeout="00:59:00" bypassProxyOnLocal="false"
         transactionFlow="false" hostNameComparisonMode="StrongWildcard"
         maxBufferPoolSize="50000000" maxReceivedMessageSize="50000000"
         messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true"
         allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="50000000"
           maxArrayLength="50000000" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
          <reliableSession inactivityTimeout="00:59:00" />
          <security mode="Message">
            <!--<transport clientCredentialType="Windows" proxyCredentialType="None"
       realm="" />-->
            <message clientCredentialType="UserName" negotiateServiceCredential="true"
             algorithmSuite="Default" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>

    <services>
      <service behaviorConfiguration="AdviserPayServiceBehaviour" name="AdviserPay.Services.FirstService.FirstService">
        <endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding" contract="AdviserPay.Services.FirstService.IFirstService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="AdviserPayServiceBehaviour">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceAuthorization principalPermissionMode="None" impersonateCallerForAllOperations="false" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="Custom"
              membershipProviderName="AdviserPayCustomMembershipProvider" />
          </serviceCredentials>
          <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false"
            serviceAuthorizationAuditLevel="None" messageAuthenticationAuditLevel="SuccessOrFailure" />
          <serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Ответы [ 2 ]

5 голосов
/ 04 января 2011

Вероятно, что имя службы в файле разметки .svc не совпадает с именем, указанным в web.config.

Когда WCF запускает службу, среда проверяет имя службы в файле .svc,затем ищет в web.config конфигурацию, соответствующую этому имени.Если ничего не найдено, он использует конфигурацию по умолчанию - BasicHttpBinding.

Чтобы решить вашу проблему:

  1. Щелкните правой кнопкой мыши FirstService.svc
  2. Нажмите «Просмотреть разметку»
  3. Убедитесь, что атрибут Service соответствует атрибуту имени сервиса в web.config.
1 голос
/ 26 января 2013

У меня такая же проблема, но мой сервис работает. В моем случае я выставляю две привязки - basichttp и wshttp. У меня есть тестовый веб-сайт, который был создан новый на .net 3.5. когда он получает ссылки на сервисы, он сбрасывает обе привязки, я комментирую базовую конечную точку. И все это работает.

Тем не менее, реальный потребитель - это веб-сайт, который был изначально создан в .net 2.0 и с тех пор обновлен до 4.0. Так что я делаю тот же процесс, что и раньше, закомментируйте конечную точку basicHttp. но что происходит, я получаю исключение при вызове службы, и он ожидает отправки и получения http, сервер отклоняет соединение в этом тесте.

Это должно быть что-то, когда сайт обновляется до 4.0 и изначально не создан в версии 3.5 или выше. Я могу сказать, что это была ситуация обновления, потому что папка свойств, которая обычно присутствует, не существует на реальном сайте потребителя сервиса.

Должен быть флаг / настройка, чтобы включить, но я не уверен, что.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...