Служба отдыха WCF: невозможно вызвать методы - PullRequest
1 голос
/ 07 февраля 2012

Пожалуйста, скажите мне, что я делаю что-то глупое при настройке моей службы wcf rest.Я создал веб-приложение и добавил к нему службу wcf.

Вот мой web.config

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>

    <system.serviceModel>
      <services>
        <service name="WebApplication1.Service1">
          <endpoint address="../Service1" behaviorConfiguration="httpBehavior"

                binding="webHttpBinding"
                contract="WebApplication1.IService1"/>
        </service>
      </services>
      <behaviors>
        <endpointBehaviors>
          <behavior name="httpBehavior">
            <webHttp helpEnabled="true" />
          </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    </system.serviceModel>
    <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
</configuration>

И мой интерфейс службы:

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [WebGet(UriTemplate = "data/{value}", ResponseFormat = WebMessageFormat.Json)]
    Person GetData(string value);
}

И мой сервисный код:

public class Service1 : IService1
    {

        public Person GetData(string value)
        {
            return new Person()
            {
                Id = Convert.ToInt32(value),
                Name = "John Doe"
            };
        }
    }

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

У меня нет проблем с просмотром сервиса http://localhost/RoleProviderSite/Service1.svc, но как только я добавляю данные / 10 http://localhost/RoleProviderSite/Service1.svc/data/10 "Канал не был активнымпрослушивание 'http://mymachinename/RoleProviderSite/Service1.svc/data/10"

Я бы подумал, что добавление "[WebGet (UriTemplate =" data / {value} ", ResponseFormat = WebMessageFormat.Json)]" будет означать, что этот URL будет доступен, но, возможно, яЯ что-то упустил?

Я использую: Internet Information Services, версия: 5.1 и ОС XP

Большое спасибо за любую помощь.

1 Ответ

1 голос
/ 07 февраля 2012

удаляет адрес в конечной точке, и ваш URI должен работать как положено. Вы не можете использовать относительную адресацию подобным образом для своей конечной точки

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