Создание веб-сервисов без веб-сервера - PullRequest
1 голос
/ 19 июня 2010

ОК, это невозможно, но я постараюсь объяснить ситуацию здесь.

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

В VS, однако, после отладки веб-проекта он создает быстрый сервер разработки ASP.NET, не полагаясь на Actall IIS, который может быть установлен на ПК.

Есть ли какой-нибудь проект, который делает что-то подобное? Это было бы идеально для небольших проектов, где простой исполняемый файл подготовил бы сервер к работе и позволил бы сразу запускать веб-сервисы.

Я смотрел на некоторые вещи в сети, такие как http://msdn.microsoft.com/en-us/magazine/cc163879.aspx и http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2004/05/24/4479.aspx, но они кажутся довольно устаревшими, и я не уверен, насколько хорошо они работают (не проверял их полностью)

РЕДАКТИРОВАТЬ: Я создал приложение, подобное тому, которое вы предлагаете. Тем не менее, как я могу реализовать HTTP-запросы GET / POST к службе, используя этот метод? Я пытался использовать WebGet после моего контракта, но он не работал. Например, мой сервис на http://localhost:8080/Service, и я хотел бы использовать его, например, http://localhost:8080/Service/getMethod?x=2.

Ответы [ 3 ]

1 голос
/ 19 июня 2010

Служба WCF может быть размещена практически в любом приложении, включая службу Windows или консольное приложение. Веб-сервер вообще не нужен.

1 голос
/ 20 июня 2010

Хорошо,

Я сделал это, поэтому я публикую его здесь, чтобы помочь всем, у кого есть проблемы с подобными проблемами.Создайте свой файл службы WCF как обычно, а затем с помощью ServiceHost (или WebServiceHost) вы можете легко создать службу WCF.Чтобы использовать HTTP-запросы GET для упрощения связи с мобильными устройствами (например, iphone), вы можете использовать WebGet над вашими методами обслуживания и убедиться, что вы вручную добавляете конечную точку службы, используя WebHttpBinding для WebServiceHost или WebHttpBinding с WebHttpBehavior для ServiceHost.Затем вы можете вызвать ваши методы обслуживания, такие как http://localhost:port/webhttpendpointaddress/mymethod?x=2.

1 голос
/ 19 июня 2010

Я полагаю, что сервер разработки, используемый Visual Studio, основан на кодовой базе Cassini (здесь есть разветвление ). Я также нашел эту статью о размещении среды выполнения asp.net. Это было также создано некоторое время назад (2004), но было обновлено с (2008). Я думаю, что многие основные концепции, вероятно, все те же.

Другим подходом может быть создание собственного веб-сервера, использующего класс HttpListener. Это может потребовать некоторой работы, если вы хотите использовать его для хостинга сервисов типа asmx, но если вы работали с сервисами RESTful, это не так уж плохо (так на самом деле работает RavenDB если не размещать его под IIS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...