我想创建一个在IIS6中托管的WCF服务,并在IIS中禁用匿名身份验证.并且不要使用SSL.
所以我唯一的方法是使用basicHttpBinging TransportCredentialOnly
,不是吗?
我创建一个虚拟目录,设置Windows Integrated Auth并取消选中"启用匿名访问".
这是我的web.config:
您可以看到我甚至没有将MEX-enpoint包含在元数据交换中.使用TransportCredentialOnly安全性只有一个端点和一个绑定.
但是当我尝试启动服务(通过客户端代理调用方法)时,我在EventLog中遇到了这样的异常:
异常:System.ServiceModel.ServiceActivationException:由于编译期间发生异常,无法激活服务'/wcftest/ServiceFacadeService.svc'.异常消息是:该服务的安全设置需要"匿名"身份验证,但它没有为承载此服务的IIS应用程序启用.. ---> System.NotSupportedException:该服务的安全设置需要"匿名"身份验证,但它没有为承载此服务的IIS应用程序启用.
我不知道为什么我的服务需要Anonymous auth?为什么?
答案发现了jezell.谢谢.我混合了bindingName和bindingConfiguration:
那就对了:
MEX终结点可能仍然是问题(见本岗位).尝试禁用这样的MEX:
这是关于保护MEX 的好帖子.