Проблемы, включая ссылку на службу на веб-сайте.NET
У меня есть созданный мной веб-сервис, который я успешно включаю в консольный проект.NET, но невозможно включить в проект веб-сайта. Каждый раз, когда я добавляю веб-ссылку, мой помощник не находит службу локально, но если я введу веб-ссылку, она будет там. Кроме того, автоматически сгенерированные классы в консольном приложении полностью отличаются от сгенерированных в приложении веб-сайта.
Веб-сервис - это сервис WFC, и у него есть функции обратного вызова, поэтому мне нужен такой интерфейс, как IServiceLectorTarjetasSharpCallback
, что я не могу найти, когда добавляю ссылку на мой сайт.
Я использую VS 2015.
1 ответ
Я бы избегал генерации кода, когда это возможно. Если хотите, попробуйте это:
- Создайте контрактную сборку, чтобы определить интерфейс сервиса и контракт:
[ServiceContract]
public interface IService
{
[OperationContract]
CustomResponse Test(string test);
}
public class CustomResponse { }
- Импортируйте контракт dll и внедрите сервис обычно в сервисном проекте:
public class ServiceImplementation : IService
{
public CustomResponse Test(string test)
{
return new CustomResponse();
}
}
- Внедрите Client в клиентской сборке, также ссылаясь на контракт
public interface IServiceClient { CustomResponse Test(string test); }
public class ServiceClient : ClientBase< IService>, IServiceClient
{
public CustomResponse Test(string test)
{
return Channel.Test(test);
}
}
- Потребить клиента:
IServiceClient client = new ServiceClient(); //or some DI
var result = client.Test("Test");