有没有办法在运行 IIS 6.0 和 .NET 3.5 SP1 的服务器上通过对 WCF 服务(.svc 文件)的直接访问请求提供自定义的“抱歉未找到”页面。
我有一个要求,即生产环境中的服务不可被发现。该要求指出应关闭 WSDL 发布,并且请求还指出,当通过 HTTP Get 请求直接访问 MyService.svc 文件时,将显示“抱歉未找到”页面。
禁用配置文件中的元数据我没有问题。
<serviceMetadata httpGetEnabled="false" />
但我想不出不显示默认 .svc 页面的方法。
服务
这是 Windows© Communication Foundation 服务。
此服务的元数据发布目前已被禁用。
如果您有权访问该服务,则可以通过完成以下步骤修改您的 Web 或应用程序配置文件来启用元数据发布:...
也发布于堆栈溢出。
答案1
您不能仅使用 clientaccesspolicy.xml 或 crossdomainpolicy.xml 文件来限制访问吗?
如果你担心有人会误入http://你的站点/service.svc
yourdomain.com 的 crossdomainpolicy.xml 示例
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*.yourdomain.com" secure="false" />
<allow-http-request-headers-from domain="*" headers="*" secure="false" />
</cross-domain-policy>