Новый веб-сервис WCF возвращает 401 в одной среде - PullRequest
0 голосов
/ 05 марта 2019

Недавно мы развернули веб-сервис WCF в нашей среде prod. Попытки вызвать его или даже получить доступ к WSDL из браузера возвращают 401. Где будет происходить эта аутентификация?

Этот сервис находится в своем собственном виртуальном приложении под веб-сайтом с дюжиной других подобных сервисов. У них нет одинаковых симптомов. Точно так же это не происходило ни в одной из трех предварительно подготовленных сред.

Я просмотрел настройки IIS для виртуального приложения и пула приложений, но ничего мне не выделялось. Единственное несоответствие, которое я вижу между конфигами UAT и Production, - это то, что prod one нацелен на 4.6.1 вместо 4.6.2.

Web.config от prod:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
    <customErrors mode="Off" />
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding maxReceivedMessageSize="40000000">
        </binding>
      </basicHttpBinding>
      <basicHttpsBinding>
        <binding maxReceivedMessageSize="40000000">
        </binding>
      </basicHttpsBinding>
    </bindings>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <directoryBrowse enabled="true" />
  </system.webServer>

</configuration>

Есть ли у кого-нибудь идея, почему этот сайт будет перенаправлять соединения как несанкционированные - даже когда просто просматриваете, чтобы попасть на wsdl?

UPDATE Подумав и проверив здесь , я обнаружил, что код суб-статуса Возвращено было 3, указывая на разрешения для папки. Добавление всех (временно) решило проблему. По-прежнему остается попытка выяснить, почему виртуальное приложение на том же сайте, что и многие другие, использует ту же учетную запись для запуска пула приложений, как и все другие пулы приложений, столкнувшиеся с этой проблемой.

1 Ответ

0 голосов
/ 08 марта 2019

Я не знаю, как вы настраиваете во время процесса развертывания / публикации.Со своей стороны, я сделал простую демонстрацию, она работает нормально. Я хотел бы, чтобы вы могли поделиться более подробной информацией о вашем проекте.
Сервер (конфигурация)

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
    <basicHttpsBinding>
      <binding maxReceivedMessageSize="40000000">
      </binding>
    </basicHttpsBinding>
    </bindings>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

Сервер (интерфейс / класс).

  [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);
}
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }
    }

Моя серверная среда (10.157.13.70) - это win10, IIS10.виртуальный путь - C: \ Test.Вот что я сделал в IIS.Добавьте сертификат привязки и разработки https.
enter image description here
Кроме того, у меня включена функция анонимной аутентификации в модуле аутентификации IIS (настройки по умолчанию).
Функция WCF.
enter image description here
Результат.
enter image description here
Не стесняйтесь сообщать мне, если проблема все еще существует.

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