在IIS 7上调用WCF Web服务时缺少授权标头

时间:2011-06-20 19:09:32

标签: wcf iis-7 authorization

我们有一个WCF Web服务,它采用“用户名:密码”授权标头。此服务在我的开发Windows 7计算机和生产中的Windows Server 2003计算机上运行良好。

但是,我们的开发和新生产服务器是Windows Server 2008,并且该服务无法接收授权标头。

您可以在下面看到来自Fiddler的原始请求包括授权标题。

  

POST http://servername/service.svc/soap HTTP / 1.1
  Content-Type:text / xml;字符集= UTF-8
  授权:测试:测试
  VsDebuggerCausalityData:uIDPozpQ7mbpOVRFu79Tl0h3mkIAAAAAJMavDzJlIkqyjJDSIIxdVuKNB0y6n29OvukFtyRt0wwACQAA
  SOAPAction:“......”
  主持人:服务器名称
  内容长度:152
  期待:100-继续
  Accept-Encoding:gzip,deflate
  连接:Keep-Alive

我没有成功启用IIS高级日志记录,看看我是否可以在服务器上获得任何额外信息。

IIS网站配置为匿名身份验证。

该服务实现 IAuthorizationPolicy ,并且肯定会调用 Evaluate 方法,这是缺少授权信息的地方。

感觉我在IIS中配置错误,但我不知道是什么!任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

事实证明我正处理两个不同的问题。

在开发服务器上,我发现.NET 4.0安装已损坏。这是由brilliant tool诊断出来的。

在两台服务器上,我将管道模式从 Classic 更改为 Integrated ,因为没人知道为什么它首先设置为Classic。稍后调整一下web配置,服务正在运行!

解决方案可能还需要Richard L建议的基本身份验证,因为生产服务器中缺少该身份验证。请注意,服务网站本身未启用基本身份验证。

非常令人沮丧的几天试图让这个工作。