Развертывание службы WCF с веб-приложением ASP.NET - PullRequest
1 голос
/ 01 февраля 2012

У меня возникли некоторые трудности при развертывании службы WCF вместе с моим веб-приложением ASP.NET.У меня все работает на моем локальном компьютере (определены мой адрес, привязки, контракт), и я могу вызвать службу из моего веб-приложения ASP.NET (MVC).(Базовый URL-адрес сейчас http://localhost: #### / Design_Time_Address / Полностью / квалифицирован / Сервис / )

К сожалению, когда я пытаюсь развернуть, вещи могут взорваться.

Вот что я сейчас делаю.Пожалуйста, дайте мне знать, если один или несколько шагов неверны.

  1. У меня есть ссылка на службу WCF в моем проекте ASP.NET MVC.
  2. Сначала я попытался просто развернутьпроект MVC с использованием веб-развертывания.Часть MVC работала нормально, но она не смогла найти мою службу.(Хотя, что интересно, я могу видеть библиотеки DLL для своего сервиса на своем хосте.)
  3. Итак, немного поработав с этим, я попытался загрузить свой сервис отдельно через SFTP.Я был в состоянии ударить файл .svc в один момент, но в последнее время я получаю ошибки.(Я предполагаю, что это потому, что я пытался выяснить это и по-королевски облажался).
  4. Я немного запутался здесь, потому что не понимаю, каким должен быть адрес, иликак мне настроить его в файле WCF App.config, чтобы мое MVC-приложение могло получить к нему доступ.

Как я уже сказал, я был в порядке, пока мне не пришлось развернуть, и, к сожалению, я не могунайди учебники, которые могут мне помочь.

Что я не понимаю, так это то, что мне нужно сделать, чтобы получить доступ к моему сервису через приложение MVC через хост-сервер?Нужно ли предоставлять ссылку на сервис в моем проекте MVC, как я делаю сейчас?Нужно ли что-то настраивать в службе WCF напрямую?Возможно ли просто выполнить веб-развертывание и использовать Stuff Just Works (TM)?

Благодарим вас за помощь.

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Вы могли бы пойти маленькими шагами.

  1. Создание нового решения Visual Studio.
  2. Добавить новый проект пустого веб-приложения ASP.NET.
  3. Добавить новый элемент службы WCF в это приложение.
  4. Опубликуйте ваше приложение на сервере.
  5. Убедитесь, что служба успешно опубликована в IIS, перейдя к ней (http://host/myservice/service1.svc).
  6. Добавьте новое приложение ASP.NET MVC 3 в свое решение. Это создаст строго типизированные клиентские прокси-классы, позволяющие вам использовать службу и изменить ваш web.config для добавления раздела <system.serviceModel>, содержащего конечную точку клиента, чей адрес указывает на опубликованную вами службу WCF
  7. Реализуйте некоторый код в вашем приложении ASP.NET MVC 3, который будет вызывать метод сервиса
  8. Запустите приложение ASP.NET MVC 3 локально, и оно сможет вызвать опубликованную службу.
  9. Опубликуйте ваше приложение ASP.NET MVC 3

Теперь, когда вы настроили все, что вы готовы, чтобы начать внедрение функциональности в сервис. Затем вы можете либо протестировать службу локально, изменив конечную точку клиента в файле web.config вашего приложения ASP.NET MVC 3, либо оставив ее и опубликовав службу.

Лично я не использую диалог Add Service Reference в Visual Studio. Я ненавижу, когда это касается моего web.config. Я просто ненавижу, когда что-то касается моего кода без моего разрешения или проверки. Я использую командную строку svcutil.exe для создания строго типизированного клиента для моих служб WCF. Поэтому я набираю команду svcutil.exe http://localhost:1234/service1.svc, которая генерирует 2 файла: файл .cs, содержащий прокси клиента, и файл app.config, содержащий конфигурацию конечной точки службы (которую я обычно выбрасываю, так как предпочитаю модифицировать web.config своего приложения). вручную). Затем я копирую файл .cs в свое клиентское приложение.

0 голосов
/ 25 февраля 2012

Итак, оказывается, проблема была очень легко решена ... к сожалению, в этом случае я был полным нубом.Вместо создания приложения службы WCF я создал библиотеку службы WCF.Переключился на приложение-службу WCF, настроил мои конечные точки, добавил службу DEPLOYED в мое приложение MVC, и это сработало как очарование.

Чувствую себя новичком сегодня ...

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