Создание проблем/вызов простого веб-сервиса WCF json
Привет,
Я пытаюсь научиться создавать веб-сервис json REST и начинаю с простого примера ... но не могу заставить его работать. Это то, что я получаю, когда пытаюсь назвать его с завитком ...
curl -X GET -v http://localhost:8733/Design_Time_Addresses/HelloService/HelloService/GetData/value/334 Note: Unnecessary use of -X or --request, GET is already inferred. * Trying ::1... * TCP_NODELAY set * Connected to localhost (::1) port 8733 (#0) > GET /Design_Time_Addresses/HelloService/HelloService/GetData/value/334 HTTP/1.1 > Host: localhost:8733 > User-Agent: curl/7.55.1 > Accept: */* > < HTTP/1.1 405 Method Not Allowed < Allow: POST < Content-Length: 0 < Server: Microsoft-HTTPAPI/2.0 < Date: Mon, 02 Nov 2020 21:20:50 GMT < * Connection #0 to host localhost left intact C:\
Если это имеет значение, я запускаю/обслуживаю службу, используя "режим отладки", который вызывает тестовое клиентское приложение WCF.
Может ли кто-нибудь сказать мне, пожалуйста, почему он думает, что я должен просить пост?
Что я уже пробовал:
Вот мой адский сервис.VB, IHelloService.Файлы VB и my App.Config:
IHelloService.vb <ServiceContract()> Public Interface IHelloService <OperationContract()> Function GetData(ByVal value As String) As String End Interface
HelloService.vb Public Class HelloService Implements IHelloService <WebInvoke(ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json, Method:="GET", UriTemplate:="value/{value}")> Public Function GetData(ByVal value As String) As String Implements IHelloService.GetData Return String.Format("You entered: {0}", value) End Function End Class
app.config <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> <add key="ClientSettingsProvider.ServiceUri" value="" /> </appSettings> <system.web> <compilation debug="true" /> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> <system.serviceModel> <services> <service name="HelloService.HelloService"> <endpoint address="web" behaviorConfiguration="JsonBehavior" binding="webHttpBinding" contract="HelloService.IHelloService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="http://localhost:8733/Design_Time_Addresses/HelloService/HelloService/" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" /> <serviceDebug includeExceptionDetailInFaults="False" /> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="JsonBehavior"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel> </configuration>