所以我试图用REST GET创建一个非常基本的WCF服务,但只有“找不到端点”。我通过Postman App发送GET来解决:
http://localhost:8733/Design_Time_Addresses/RESTfulTest/Service1/json
服务由IIS托管;这是我的所有代码:
namespace RESTfulTest
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet]
string GetText();
}
}
namespace RESTfulTest
{
[ServiceBehavior(InstanceContextMode =InstanceContextMode.Single)]
public class Service1 : IService1
{
public string GetText()
{
return "Hello REST";
}
}
}
和App.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<services>
<service name="RESTfulTest.Service1">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:8733/Design_Time_Addresses/RESTfulTest/Service1/" />
</baseAddresses>
</host>
<endpoint address="json" binding="webHttpBinding" behaviorConfiguration="jsonBehavior" contract="RESTfulTest.IService1"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
我在这里缺少什么?
答案 0 :(得分:0)
您打算使用ASP.NET Ajax来调用该服务吗?如果没有,则不应使用<enableWebScript>
行为,而应使用<webHttp>
行为。
此外,您应该删除<serviceMetadata>
行为,因为您不会从服务中公开WSDL。
答案 1 :(得分:0)
所以一切都设置得当。我问的端点地址不正确。它应该是http://localhost:8733/Design_Time_Addresses/RESTfulTest/Service1/json/GetText
我不知道应该将函数名称添加到地址中,这就是重点。