WCF休息服务:无法调用方法

时间:2012-02-07 15:36:05

标签: wcf json rest

请告诉我,我在设置我的wcf休息服务时做了些蠢事。 我已经创建了一个Web应用程序并为其添加了一个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)]”意味着这个网址可以访问,但也许我错过了什么?< / p>

我正在使用: 互联网信息服务,版本:5.1 和XP OS

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

删除端点中的地址,您的URI应该按预期工作。您不能使用类似端点的相对寻址