2012-02-21 7 views
2

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

Любые идеи?

+0

Не спрашивая почему, я предлагаю разместить WCF в службе Windows и управлять портом локально. –

+0

Привет, ребята, благодарю вас за своевременные ответы. То, что я пытаюсь сделать, - создать внутреннюю службу для инициализации набора баз данных с использованием первой функции EF-кода. Мне нужно, чтобы он был приватным, поскольку инициализация базы данных, скорее всего, является процессом разработки, и я бы не хотел раскрывать такой вариант для внешнего мира. Я был бы счастлив попробовать другие идеи. Дело в том, что мне нужно время от времени создавать набор баз данных, так как мы все еще находимся на этапе, из-за которого таблицы могут время от времени меняться. – Just2Click

+0

Базы данных будут меняться (даже в производстве), поэтому я бы составил план вокруг того, как для управления обновлениями схемы (EF Data Migrations - один из вариантов). –

ответ

1

Вы можете настроить привязку для веб-сайта, к которому он присоединен, и изменить его на localhost, а не на *. Если вы размещаете другие службы, которым нужен внешний доступ, вы всегда можете создать новый веб-сайт на другом порту, например localhost:8000.

3

Если вы используете гибкие протоколы, вы можете использовать netNamedPipeBinding, размещенный в службе Windows.

+0

+1 для привязки IPC – oleksii

1

Служба WCF должна быть агностикой относительно того, как она размещена или доступна.

Независимо от того, где находится служба, с другой стороны, определяется способ доступа к сервису.

Как предположил Майк Гудвин, если ваш хост разрешает только netNamedPipeBinding, он будет ограничивать доступ к службе только через машину, на которой работает хост.

Ниже приведено описание article по различным транспортным протоколам, включая именованные трубы.

Вот довольно подробно article о размещении услуг WCF.

+0

Привет, ребята, благодарю вас за своевременные ответы. То, что я пытаюсь сделать, - создать внутреннюю службу для инициализации набора баз данных с использованием первой функции EF-кода. Мне нужно, чтобы он был приватным, поскольку инициализация базы данных, скорее всего, является процессом разработки, и я бы не хотел раскрывать такой вариант для внешнего мира. Я был бы счастлив попробовать другие идеи. Дело в том, что мне нужно время от времени создавать набор баз данных, поскольку мы все еще находимся в стадии, когда таблицы могут время от времени меняться. – Just2Click

+0

Возможно, вы захотите оставить этот комментарий под своим вопросом. :) Поскольку это предназначено для всех, кто пытается помочь, а не только для меня. :) –