IIS Developer Express 上的 WCF 4 Rest 服务,身份验证问题
Posted
技术标签:
【中文标题】IIS Developer Express 上的 WCF 4 Rest 服务,身份验证问题【英文标题】:WCF 4 Rest Service on IIS Developer Express, Authentication Issue 【发布时间】:2011-03-28 21:29:36 【问题描述】:当我在 IIS Developer Express 中托管 “WCF 4 Rest Service Template” 项目(来自模板)时,我得到以下信息:
IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定只支持指定一个身份验证方案。有效的身份验证方案是 Digest、Negotiate、NTLM、Basic 或 Anonymous。更改 IIS 设置,以便只使用一个身份验证方案。
除了将 automaticFormatSelectionEnabled 设置为 false 以返回 JSON 之外,我没有显式更改任何配置:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<!--Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below-->
<standardEndpoint name=""
helpEnabled="true"
automaticFormatSelectionEnabled="false"
/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
如果端点配置未明确设置是问题,那么我将如何为此类服务执行此操作,以便明确设置服务的身份验证方案以避免 iis developer express 出现此问题?
注意:我在 Web 服务项目 /bin 中有以下程序集 Microsoft.Web.dll 和 Microsoft.Web.Administration.dll > 应用程序的文件夹,如 iss 团队博客上用于跳入 WCF 服务的解决方法中所述: http://blogs.iis.net/vaidyg/archive/2010/07/21/wcf-workaround-for-webmatrix-beta.aspx
【问题讨论】:
【参考方案1】:您将需要禁用不需要的身份验证方案,我猜是 Windows 身份验证。所以:
-
启动记事本
在记事本文件中打开:%userprofile%\Documents\IISExpress8\config\applicationhost.config
搜索
这将禁用所有站点的 Windows 身份验证,您也可以在文件底部的最后 行之前为特定站点(在本例中为 YourSite)添加位置路径添加:
<location path="YourSite" overrideMode="Allow">
<system.webServer>
<security>
<windowsAuthentication enabled="false" />
</security>
</system.webServer>
</location>
这只会禁用特定网站的功能。
【讨论】:
以上是关于IIS Developer Express 上的 WCF 4 Rest 服务,身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章
IIS Express - 'fileExtension' 的'mimeMap' 上的 HTTP 错误 500.19 0x800700b7 设置为 '.svg'
调试 IIS Express Web 服务/silverlight 应用程序时出现安全错误
WebApi的{“消息”:“发生错误”}在IIS7上,而不是在IIS Express中