我们正在尝试在项目中使用基本身份验证,这通常可以在我们的集成和QA环境中正常运行,甚至可以在IIS 7.5本地运行。但是在IIS Express中本地运行我们会遇到一些非常奇怪的问题 - 任何静态请求都会导致隐藏的HTTP 500错误,告诉我们访问该资源时出错,可能是出于许多权限相关的原因,错误代码为0x80070542。同时,在ASP.NET中呈现的任何内容都是完美的。
粗略搜索表明问题通常源于IIS帐户无法访问这些资源。这是运行下来,IUSER肯定可以访问资源 - 事实上,完全相同的文件夹在IIS 7.5中完美运行;只有IIS Express barfs。并且只有当我们启用基本身份验证时 - 如果我们启用Windows身份验证,则所有请
我们最终尝试运行sysinternals procmon,试图弄清楚我们是否正在查看正确的用户,以及是否还有其他失败的东西,我们发现事情因为BAD IMPERSONATION而失败。但是试图找出谁在冒充那些毫无结果的东西。从我们可以看出,IUSER / NETWORK SERVICE /默认帐户确实具有适当的访问级别,因为在生产模式下IIS可以与任何类型的访问测试通过一起使用。运行IIS express的帐户都是本地管理员,应该可以访问模拟。在本地安全策略中手动添加该权限没有任何区别。我只是无法找到一种方法来解决这个明确定义模拟用户的问题,我真的不应该这样做。
那么,是否有正确的方法使IIS Express能够使用基本的身份验证和静态请求?
答案 0 :(得分:0)
IIS Express作为当前登录用户运行,不进行模拟。可能只是为了测试,你可以尝试将当前登录的用户帐户添加到IIS IUser组,看看是否有任何技巧。
答案 1 :(得分:0)
我终于获得了很好的权限,在IIS Express 8中基本身份验证中的某些内容被破坏了,这是一个已知的错误,在该版本中无法解决,但可能会在将来的版本中解决。
我们已经有了开发配置,所以我们只是使用windows auth进行本地开发,因为它不会改变我们的应用程序的任何内容,我们已经有了独立的开发配置,但这可能不适用于所有情况。