Почему общая ошибка 404 для простого C # WebApi Rest WCF Service? - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать простой сервис REST в C # в Visual Studio. Я получаю следующую общую ошибку при запуске и переходе к http://localhost:63735/Service1.svc/Tutorial:

  • " Ошибка сервера в приложении '/'. Ресурс не найден. HTTP 404"

Когда я просто перехожу на http://localhost:63735, отображается стандартная страница «ASP> NET - это бесплатная веб-инфраструктура для создания великолепных веб-сайтов с использованием HTML, CSS и JavaScript». Консоль разработчика, похоже, не дает никакой дополнительной информации. Не изменяется при смене браузера.

Я следовал руководству на https://www.guru99.com/restful-web-services.html, чтобы создать этот простой сервис REST. Чего мне не хватает?

Service1.svc.cs:

namespace WebApplication1
{
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class Service1
    {
        private static List<string> lst = new List<string>(new String[] {"Arrays","Queues","Stacks"});

        [WebGet(UriTemplate="/Tutorial")] //GET at /Tutorial  (for the following method)
        public String GetAllTutorial()
        {
            int count = lst.Count;
            String TutorialList = "";
            for (int i = 0; i < count; i++)
                TutorialList = TutorialList + lst[i] + ",";
            return TutorialList;
        }

        [WebGet(UriTemplate = "/Tutorial/{Tutorialid}")]
        public String GetTutorialbyID(String Tutorialid)
        {
            int pid;
            Int32.TryParse(Tutorialid, out pid);
            return lst[pid];
        }

        [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,UriTemplate = "/Tutorial", ResponseFormat = WebMessageFormat.Json, BodyStyle =WebMessageBodyStyle.Wrapped)]
        public void AddTutorial(String str)
        {
            lst.Add(str);
        }

        [WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped)]
        public void DeleteTutorial(String Tutorialid)
        {
            int pid;
            Int32.TryParse(Tutorialid, out pid);
            lst.RemoveAt(pid);
        }

    }
}
...