Не могу запустить службу WCF ASP.NET

126
18 апреля 2022, 15:40

Создал пустой aps.net проект. По туториалу добавил службу WCF и написал этот код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;
using System.Web.Http;
namespace NaotvetWebService
{
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class TestService
    {
        private static List<string> lst = new List<string>
        {
            "Arrays",
            "Queues",
            "Stacks"
        };
        [WebGet(UriTemplate = "/Tutorial")]
        public string GetAllTutorials() => String.Join(",", lst);
        [WebGet(UriTemplate = "/Tutorial/{TutorialId}")]
        public string GetTutorialByID(string TutorialId)
        {
            int pid;
            if (!int.TryParse(TutorialId, out pid))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            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;
            if (!int.TryParse(TutorialId, out pid))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            lst.RemoveAt(pid);
        }
    }
}

И вот конфиг:

<?xml version="1.0" encoding="utf-8"?>
<!--
  Дополнительные сведения о настройке приложения ASP.NET см. на странице
  https://go.microsoft.com/fwlink/?LinkId=169433.
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.7.2" />
    <httpRuntime targetFramework="4.7.2" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="NaotvetWebService.TestServiceAspNetAjaxBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <services>
      <service name="NaotvetWebService.TestService">
        <endpoint address="" behaviorConfiguration="NaotvetWebService.TestServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="NaotvetWebService.TestService" />
      </service>
    </services>
  </system.serviceModel>
<system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer></configuration>

Но при запуске меня встречает вот такая ошибка: "Не удалось добавить службу. Метаданные службы недоступны. Убедитесь, что служба работает и предоставляет метаданные". И при запуске это:

Что делать?

READ ALSO
Создание транзакции FireBase с помощью Xamarin

Создание транзакции FireBase с помощью Xamarin

Необходимо просто поле count постоянно добавлять +1, как я понимаю если я сделаю так:

278
Сравнение двух дат в C#

Сравнение двух дат в C#

Мне нужно сравнить две даты(DateTime) и узнать является их разница больше X днейЯ понимаю что тут дело в логике, но я не могу сам написать эту функцию

150
Как обрезать после 3ей запятой?

Как обрезать после 3ей запятой?

Есть текст - showAcabado(this, 'http:', 'BLACK', '', '')

132
CS0029 при записи элемента в строку C#

CS0029 при записи элемента в строку C#

Когда я присваивал строке(string) элемент из массива символов компилятор пишет ошибку CS0029: Cannot implicitly convert type 'int' to 'string'

212