0

我在我们的站点上有一个托管在 IIS 7.0 上的实用程序 Web 服务。该服务由桌面客户端使用,由于它是一个实用服务,用户应该能够在不输入凭据的情况下访问它,因此Anonymous在 IIS 中将身份验证类型设置为。

现在的问题是服务 URL 可以被公众访问,并且在 Web 浏览器中输入它会将用户定向到此页面:

在此处输入图像描述

即使这不会为用户提供任何可能具有潜在危险的有用信息,但如果我可以隐藏该页面以防止公众访问,那仍然会很好。那么有没有办法阻止用户访问此页面但仍将服务本身公开?我知道 IIS 7 启用 URL 重定向,但我不知道在添加服务引用时从 VS 发送的请求实际上是否与在输入 URL 时从 Web 浏览器发送的请求有任何不同。任何帮助表示赞赏。

编辑

正如评论部分所讨论的,一个选项是通过在运行时创建一个来访问服务ChannelFactory,但这需要将合同暴露给客户端,这是我试图避免的。

4

1 回答 1

1

I guess what you want to disable is the HTML page. Do it using ServiceDebug element.

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceDebug httpHelpPageEnabled="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

EDIT: To Disable WSDL:

<serviceMetadata httpGetEnabled="false" />
于 2013-07-03T21:05:55.047 回答