请告诉我,我在设置我的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
非常感谢您的帮助。
答案 0 :(得分:1)
删除端点中的地址,您的URI应该按预期工作。您不能使用类似端点的相对寻址