WCF与IIS集成Windows身份验证的矛盾

好久没有上来了,最近跟着原来的老大一起跳到了一家新公司,在做一个新的交友项目,今天总算基本完成了。分享一个关于WCF的小技巧,由于项目中

很多地方用了Jquery+WCF来实现Ajax异步获取数据,在开发环境下:

直接在vs.net里,右击svc文件在浏览器里浏览时(没有采用vs.net自带的aspx服务器,而是在项目属性里设置为直接使用IIS),提示以下错误:

IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定仅支持一种身份验证的规范。有效的身份验证方案为摘要、协商、NTLM、基本或匿名。请更改 IIS 设置,以便仅使用单一的身份验证方案。


错误提示说得很明白:IIS要么采用集成验证,要么仅使用匿名验证,于是把IIS设置里的集成验证勾选去掉了,IIS重启后,这回运行正常了,但是VS.Net却无法断点调试了(启用调试必须采用集成验证),难道这就是传说中的“鱼与熊掌不可兼得”???

不甘心之下,在iis的website站点中,对svc所在的目录右击看了一下,呵呵,找到解决办法了,IIS可以允许单独对每个目录(或虚拟目录)设置目录安全性,于是把svc所在的目录(整个项目中的所有wcf文件都集中放在这个目录中)--》目录安全性-->去掉了集成验证前的勾选框,而整个站点仍然采用集成验证,这下svc可以直接浏览,而我们傻乎乎的vs.net也能断点调试了……(菩提树下的杨过^_^)

 

你可能感兴趣的:(windows)