【问题标题】:How can I change an html output of wcf service with my own content?如何使用自己的内容更改 wcf 服务的 html 输出?
【发布时间】:2011-08-29 11:39:11
【问题描述】:

我编写了一个 wcf 服务,它使用带有一些 url 的 BasicHttpBinding 和一个使用该服务的客户端。 用户应启动客户端应用程序并指定在服务器端点中指定的相同 url。

但是,如果用户无意中在网络浏览器中打开了此 url,他/她会看到有关如何检索服务元数据的信息,这对他们来说绝对没用。

应该做什么才能让他/她看到,例如帮助主题?

【问题讨论】:

  • 您可以配置您的网络服务器以检查用户代理是否是浏览器,然后重定向到帮助内容。

标签: html wcf web-services


【解决方案1】:

您需要关闭服务元数据的发布。

您可以在 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】:

    如果您想要自定义帮助页面而不是默认帮助页面,您需要修改 ServiceDebug 行为:

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

    HTTPS 也存在相同的属性,如果有一些特殊要求,您还可以控制它们的“绑定”。

    【讨论】:

    • +1 用于提及 httpHelpPageUrl。虽然它似乎不会自动重定向到帮助网址 (social.msdn.microsoft.com/Forums/en-US/wcf/thread/…)
    • -1 因为这从来没有像他们宣传的那样奏效。您为该 httpHelpPageUrl 属性找到的所有 cmets 都来自显然从未尝试过的人。 Christophe 的线程最终得到了一个推荐的“解决方案”,将 c# 中的 html 写入流:(
    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2016-01-26
    • 2012-09-22
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多