Для использования WCF и создания .svc необходимо веб-приложение или на простом веб-сайте ASP.NET запустите .svc - PullRequest
1 голос
/ 08 июня 2010

Поскольку на веб-сайте я получаю данные из .svc

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

И не в веб-приложении

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TaskService
{
    [OperationContract]
    public List<int> GetTasks(int id, int type)
    {
        List<int> nodes = new List<int>();
            return nodes;
    }
}

И в файле конфигурации:

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="TaskServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <services>
      <service behaviorConfiguration="TaskServiceBehavior" name="TaskService">
        <endpoint address="" binding="basicHttpBinding" contract="TaskService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
  </system.serviceModel>

1 Ответ

0 голосов
/ 02 января 2012

Неважно, если это веб-приложение или приложение WCF. Важно то, что вы ссылаетесь на System.ServiceModel , то есть базовую сборку WCF. Прежде всего, вам нужно создать интерфейс, соответствующий спецификации вашего сервиса:

[ServiceContract(Namespace = "")]    
public interface ITaskService
{
    [OperationContract]
    List<int> GetTasks(int id, int type);
}

А затем внедрите это:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TaskService : ITaskService
{
    public List<int> GetTasks(int id, int type)
    {
        List<int> nodes = new List<int>();
            return nodes;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...