我已经阅读了互联网上似乎可以用自定义网站替换标准WCF登录页面的内容,但是,这些解决方案似乎不适用于IIS主机。 this question和this walkthrough都建议创建不匹配的邮件处理程序并禁用元数据发布。但是,对这两者的评论表明它在IIS中托管时不起作用,我可以确认这似乎是这种情况。
IIS需要缺少一个步骤吗?需要在服务器上配置的东西才能工作?任何帮助都会很棒。这是一个.NET 4.5 WCF SOAP服务。
答案 0 :(得分:2)
在IIS托管的WCF服务中,ServiceHost由w3wp为您创建(与您创建它的selfhost相对)。默认情况下,在此ServiceHost中添加ServiceDebug行为,导致此操作无效。启动WCF 4.5,您可以在代码中轻松配置IIS托管服务。将这段代码添加到您的服务实现中。
public class Service1 : IService1, ILandingPage
{
...
...
public static void Configure(ServiceConfiguration serviceConfig)
{
//Still continue to load the service configuration from your web.config file as before.
serviceConfig.LoadFromConfiguration();
//Remove the serviceDebug behavior.
serviceConfig.Description.Behaviors.Remove<ServiceDebugBehavior>();
}
}
有关在代码中配置IIS托管服务的更多详细信息,请参阅this。如果您使用.net框架版本&lt; 4.5您可以通过实现自定义服务主机工厂来实现相同的功能,并在代码中自行完成所有服务配置。