Member 11265837 Ответов: 1

Можно ли использовать службу WCF (которая размещается как хостинг служб windows) через httpwebrequest?


I have to create a windows service for reading some machines data for the customer client application. But, I dont have option host the service in IIS. Customer can only consume the service through web url using webrequest. Is there any possibility to consume the WCF service hosted in windows service using webrequest.

Hosting method should not be in IIS and consuming the service should be a type of webrequest (I dont have any idea on this). client will only call net.tcp,http URL types to consume the service.

Thanks in advance.


Что я уже пробовал:

Я искал на многих сайтах, но я беспомощен

Gerry Schmitz

Почему вы думаете, что вам нужно "разместить службу в IIS", чтобы клиент сделал / "потребил" веб-запрос? Одно не имеет ничего общего с другим.

1 Ответов

Рейтинг:
7

F-ES Sitecore

Да, это возможно, все, что вам нужно сделать, это заставить ваш код действовать как базовый веб-сервер. Прослушивание на порту (это не обязательно должен быть порт 80, если IIS работает на машине, то, вероятно, это должно быть что-то другое, чем 80), и когда приходит запрос, это будет сообщение http-запроса.

HTTP/1.1: запрос[^]

Самый простой способ понять, как выглядят HTTP-запросы, - это использовать инструменты отладки в вашем браузере и смотреть на вкладку Сеть, когда вы запрашиваете страницы, формат довольно прост. Как только ваша служба получила сообщение, проанализируйте запрос и выполните все необходимые действия, чтобы выполнить запрос и вернуть соответствующий форматированный ответ. Опять же, вы можете определить, как должен выглядеть ответ, посмотрев на ответы в инструментах отладки Вашего браузера.

Если вы ищете в google что-то вроде "c# make basic web server", то, вероятно, обнаружите, что большая часть кода уже существует.


raddevus

Фантастика! Я просто читал это и искал в гугле решение и ответ на этот вопрос. https://stackoverflow.com/questions/3159213/how-do-i-create-a-simple-web-server-using-wcf-without-the-servicehost-class это действительно здорово. Вы можете запустить этот пример в LINQPad.net (https://www.linqpad.net) со следующими операторами using:
Система.Время Выполнения.Сериализация, Система.Модель обслуживания.канальная система.ServiceModel, Система.Средство servicemodel.Веб

Member 11265837

@Ф-Эс компания, здорово. Спасибо.