2012-09-24 1 views
1

у меня есть:Ссылка проекта со ссылкой службы: Unknown конечная точка

  1. службы WCF [Приложение 1]
  2. Логика связи с этим сервисом [Project1 Application2]
  3. веб-страницы, используя эту логику [Проект2 Application2 ]

в Logic проект, который я добавил ссылку на службу к службы. В Веб-страница Добавлена ​​ссылка на проект Логика.

Теперь конечные точки к службе являются определяемыми в Logic проекта, так что я не могу подключиться к службе от WebPage.

Я знаю, что решение скопировать часть Logic конфигурации в WebPage конфигурации, но я не думаю, что это хорошее решение.

Хотелось бы иметь Логика как черный ящик. Я не знаю, не изменил бы я его на другую услугу, может быть, что-то другое, поэтому я не хочу WebPage «знаю» как Логика работает.

Есть ли лучшее решение? Что-то я мог бы сделать в Logic проект, который сделал бы Веб-страница умеет подключаться к Служба?

Я получаю исключение: Could not find default endpoint element that references contract

ответ

1

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

+0

Это лучше для меня, но я предпочел бы иметь конфигурацию. Я бы хотел (если возможно) изменить конечную точку без повторной компиляции – Ari

+0

Я не уверен, что я следую ... если вы хотите поместить ее в файл конфигурации, почему бы просто не поместить ее в файл WebApp.config? Вы также можете просто оставить его в файле конфигурации для Logic. Затем, когда вы хотите создать своего клиента, просто запустите файл конфигурации Logic вручную и извлеките нужные данные конечной точки и привязки, чтобы вы могли передать их в конструктор клиента. –

+0

Возможно, вы правы. – Ari

Смежные вопросы