WCF настройка публикации метаданных - PullRequest
0 голосов
/ 02 марта 2011

У меня есть универсальная служба, размещенная на IIS7, которая принимает сообщение и возвращает сообщение (с действием = "*"). Этот сервис по-прежнему публикует мета для клиентов.

Эти метаданные явно указываются с использованием свойства LocationUrl в ServiceMetadataBehavior.

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

Я попытался добавить IWsdlExportExtension к поведению конечной точки службы, но метод ExportEndpoint вызывается только один раз (при первой загрузке службы). Есть ли способ для меня сделать недействительными загруженные метаданные, чтобы при каждом вызове wsdl с использованием HttpGet вызывалось поведение?

Ответы [ 2 ]

0 голосов
/ 02 марта 2011

Нет, нет пути.Более того, если вам нужно, вы можете использовать полностью настраиваемое решение, поскольку это выходит за рамки веб-служб.Изменение метаданных означает изменение самой службы = ее внутренней логики, которая всегда приводит к перезапуску процесса хостинга и публикации новых метаданных.

0 голосов
/ 02 марта 2011

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

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

Вам следует более внимательно изучить требования бизнеса, которые делают это техническое требование необходимым, и попытаться найти другой способ его удовлетворения (возможно,сообщение в programmers.stackexchange ).Возможно, вы можете иметь несколько доступных сервисов и переключаться между ними с течением времени, но это немного не работает, не зная бизнес-требований.

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