Я новичок в WebServices и у меня простой вопрос.
Я написал службу "Hello World" в Visual Studio 2017:
ServiceAjax.svc.cs:
namespace WebServiceTest
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceAjax
{
[OperationContract]
[WebGet]
public string DoWork()
{
return "Hallo World";
}
}
}
ServiceAjax.svc выглядит так:
<%@ ServiceHost Language="C#" Debug="true" Service="WebServiceTest.ServiceAjax" CodeBehind="ServiceAjax.svc.cs" %>
Запуск это работает нормально.
Теперь я прочитал, что это способ объявить Интерфейс для Сервиса.
Почти каждый пример делает это ..., поэтому я попытался:
ServiceAjax.svc.cs:
namespace WebServiceTest
{
[ServiceContract]
public interface IServiceAjax
{
[OperationContract]
[WebGet]
string DoWork();
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceAjax: IServiceAjax
{
public string DoWork()
{
return "Hallo World";
}
}
}
При запуске я получаю сообщение об ошибке:
Это немецкий, так что мой перевод может быть не таким, как английское сообщение:
«С http://localhost:58513/ServiceAjax.svc метаданные не могут быть загружены ...»
Чуть ниже он мне говорит:
WebServiceTest.ServiceAjax не найден в списке контрактов, реализованных ServiceAjax
Итак, это должен быть дамп, потому что я не могу объяснить, почему извлечение Интерфейса наносит ущерб Сервису, я, конечно, пропустил что-то простое.
Но я не могу найти разницу с "простыми примерами WCF Web HTTP Service" в сети.
Идеи?
Обновление: я добавил это в существующий ASPX-проект, а не в "чистый" проект wcf ....