Активация WCF без файлов приводит к исключению «нулевые конечные точки приложения (не инфраструктура) ...» - PullRequest
0 голосов
/ 01 марта 2011

У меня есть служба WCF, использующая активацию без файлов:

  <bindings>
     <basicHttpBinding>
        <binding transferMode="Streamed">
           <security mode="Transport"/>
        </binding>
     </basicHttpBinding>
  </bindings>

  <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
     <serviceActivations>
        <add relativeAddress="RulesService.svc"
             service="Big.Company.RulesService.Service, RulesService" />
     </serviceActivations>
  </serviceHostingEnvironment>

На некоторых машинах я вижу следующее исключение:

Услуги «Big.Company.RulesService.Service» имеет нулевое применение (не инфраструктура) конечные точки. Это может быть потому, что нет файл конфигурации был найден для вашего приложение, или потому что нет службы элемент, соответствующий имени службы можно найти в конфигурации файл, или потому что конечные точки не были определено в сервисном элементе.

Насколько я могу судить, .svc правильно сопоставлен с модулем активации .NET 4.0. Приложение находится в пуле приложений «ASP.NET v4.0», настроенном для .NET v4.0 с использованием интегрированного конвейера.

Если я удаляю файл Web.config, я получаю ошибку 404. Если я переименую файл bin \ RulesService.dll, я получу исключение «служба не найдена».

Что с ним не так?

Обновление: При включении SSL возникает проблема. Если я подключаюсь по протоколу HTTPS, все будет в порядке , пока я не включу «Требовать SSL» в IIS .

Ответы [ 3 ]

4 голосов
/ 16 декабря 2011

После использования Reflector после полудня я перешел к методу ConfigLoader.AddDefaultEndpoints, который просматривает ProtocolMappingSection файла конфигурации, чтобы определить, какие конечные точки по умолчанию добавить.

Похоже, что HTTPS не устанавливает этот раздел неявно.

Я решил (с подсказкой что-то, что я видел ранее днем ​​), добавив в свой файл Web.config следующее:

<protocolMapping>
   <add scheme="https" binding="basicHttpBinding"/>
   <add scheme="http" binding="basicHttpBinding"/>
</protocolMapping>
0 голосов
/ 17 сентября 2013

У меня была только HTTPS-привязка в IIS для моей службы, и добавление http-привязки решило мою проблему. Без какой-либо конфигурации файла.

Add Http binding

(извините за французский скриншот )

Добавление следующего в файл конфигурации и удаление привязки http в IIS также решило мою проблему.

<protocolMapping>
   <add scheme="https" binding="basicHttpBinding"/>
</protocolMapping>
0 голосов
/ 08 апреля 2011

У меня была идентичная проблема на работе, и это была проблема с разрешениями.

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