Как я могу изменить вывод html сервиса wcf со своим собственным контентом? - PullRequest
4 голосов
/ 29 августа 2011

Я написал службу wcf, которая использует BasicHttpBinding с некоторым URL-адресом, и клиент, использующий эту службу. Пользователи должны запустить клиентское приложение и указать тот же URL-адрес, который указан в конечной точке сервера.

Однако, если пользователь непреднамеренно открывает этот URL в веб-браузере, он / она видит информацию о том, как извлечь метаданные службы, что для него абсолютно бесполезно.

Что нужно сделать, чтобы он / она увидел, например, справочную тему?

Ответы [ 2 ]

4 голосов
/ 29 августа 2011

Вам необходимо отключить публикацию метаданных службы.

Вы можете отключить его в Web.config:

<serviceMetadata httpGetEnabled="false" />

Более подробную информацию о MSDN вы можете найти здесь:

Конечно, это все равно будет генерировать целевую страницу по умолчанию, если пользователь вручную введет URL-адрес службы в адресную строку (например, http://www.examle.com/service.svc). Однако теперь будет упоминаться, что метаданные в настоящее время отключены.

Если вы хотите настроить эту страницу, я бы посоветовал вам проверить следующую ветку, она содержит полный пример кода о том, как ее настроить:

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/5778651a-b212-438a-b3e8-f7029775d52a/

2 голосов
/ 29 августа 2011

Если вы хотите иметь пользовательскую страницу справки вместо страницы по умолчанию, вам нужно изменить поведение ServiceDebug:

<behaviors>
  <serviceBehaviors>
    <behavior name="...">
      <serviceDebug httpHelpPageEnabled="true" httpHelpPageUrl="Your custom page url" />
    </behavior>
  </serviceBehaviors>
<behaviors>

Те же свойства также существуют для HTTPS, и в случае некоторых особых требований вы также можетеконтролировать их "привязку".

...