Ошибка размещения службы WCF в IIS 7.5 - PullRequest
0 голосов
/ 29 марта 2011

У меня есть служба WCF, которую я хотел бы разместить в IIS 7.5. Моя настройка: Физический путь к папке с файлом .svc: C: \ inetpub \ wwwroot \ SmartSolution \ Services \ Services \ ContainerManagementService.svc Мои файлы находятся в C: \ inetpub \ wwwroot \ SmartSolution \ Services \ bin

Я создал веб-приложение в IIS для обеих папок служб.

Вот файл конфигурации для конечной точки WCF:

      <service behaviorConfiguration="MyNamespace.ContainerManagementServiceBehavior"
    name="MyNamespace.ContainerManagementService">
    <endpoint address="" binding="basicHttpBinding"
       name="ContainerManagementbasicHttpEndpoint" contract="MyNamespace.IContainer"/>                  
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>      
   <behaviors>      
    <behavior name="MyNamespace.ContainerManagementServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
</behaviors>

Вот мой файл .svc makrkup:

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.ContainerManagementService" CodeBehind="ContainerManagementService.svc.cs" %>

Когда я пытаюсь перейти к: http://localhost/SmartSolution/Services/Services/ContainerManagementService.svc, отображается следующая ошибка:

Тип «MyNamespace.ContainerManagementService», предоставленный в качестве значения атрибута Service в директиве ServiceHost, не найден.

Как я могу заставить сервис работать. Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

IIS ожидает, что ваша папка bin находится в той же папке, что и ваш файл .svc, но, похоже, она помещена в родительскую папку.

Кроме того, вам нужно только одно указанное приложениев IIS.

0 голосов
/ 29 марта 2011

Если ваш сайт предварительно скомпилирован и у вас уже есть двоичные файлы (содержащие MyNamespace.ContainerManagementService) в папке bin, вам не нужно указывать атрибут CodeBehind:

<%@ ServiceHost 
    Language="C#"    
    Debug="true" 
    Service="MyNamespace.ContainerManagementService" 
%>

Если, с другой стороны, ваш сайт предварительно не скомпилирован, и вы также отправили исходный код, этот исходный код должен находиться в специальной папке ~/App_Code.

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