![](/img/trans.png)
[英]Will my HttpModule get called if IIS produces a 400: Bad Request?
[英]IIS appears to not be authenticating my request
好吧,全面披露我对IIS和WCF还是陌生的,所以我买了一本书,被困住了。 我可以在工作中使用开发盒进行开发,因为它是带有IIS 7的Windows 7,但在Windows 8和IIS 8上却可以在家里使用,我相信有两个问题,我只是不知道哪个步骤可能会导致此问题。 我正在使用Visual Studio 2012 Professional在两种环境下在.NET 4.5环境中进行开发。
基本上,我相信IIS设置错误,因为我正在遵循一本名为“ Windows Communication Foundation 4,请循序渐进”的书http://www.amazon.com/Windows-Communication-Foundation-Step-Microsoft/dp/0735645566
我按照设置说明进行操作,但是它们在家里有些不同,并且很好奇该如何纠正此错误:
“响应消息的内容类型text / html; charset = utf-8与绑定的内容类型不匹配(text / xml; charset = utf-8)。如果使用自定义编码器,请确保IsContentTypeSupported方法已正确实施。响应的前1024个字节为:“
在创建WCF服务库Web项目之后,此代码发生,它引用了实体框架模型。 您创建引用Web服务的控制台应用程序,并且该应用程序运行良好。 您将该Web服务部署到IIS并更改配置文件以引用该位置,并且该错误仅在Windows 8计算机上出现上述错误,Windows 7运行良好。
我注意到我无法在设置中执行两个步骤,并认为它们是罪魁祸首,但还不知道如何针对Windows 8进行调整。
从VS命令提示符:“ aspnet_regiis -iru”,这对于IIS 8根本不起作用。不知道打开IIS为asp.net操作的通用设置设置哪些选项。 -我确实尝试进入IIS,并在“身份验证”下启用匿名身份验证和ASP.NET。 仍然没有解决任何问题。
本书附带一个sql对象,该对象随后将两个用户注册到“ Adventureworks”数据库中。 显然我在猜测,因为第1部分不起作用,或者由于Windows 8设置,这些用户不存在,因此无法注册。 注册用户的代码为:
'创建用户[IIS APPPOOL \\ DefaultAppPool]登录[IIS APPPOOL \\ DefaultAppPool] GO EXEC sp_addrolemember N'db_owner',[IIS APPPOOL \\ DefaultAppPool] GO创建用户[IIS APPPOOL \\ ASP.NET v4.0]登录[IIS APPPOOL \\ ASP.NET v4.0]执行EX sp_addrolemember N'db_owner',[IIS APPPOOL \\ ASP.NET v4.0] GO'
非常感谢任何帮助,因为我知道这可能只是一种简单的方法。
好吧,我想我明白了,但是我却没有做到。 看来我需要在IIS 8中使用匿名访问来运行该服务。转到默认站点“禁用” ASP.NET模拟下的“身份验证”。 但是...由于某种原因,Windows 8默认未启用.NET 4.5的IIS8和WCF选项。因此,我发现了这一点: http : //proq.blogspot.com/2012/09/wcf-on-iis- and-windows-8.html并启用它们。
很奇怪,无论如何,我知道在某个时候我将不得不在模仿服务器环境的本地计算机上注册ASP.NET用户。 但是暂时匿名访问似乎有效。 我很好奇,但是如果IIS知道它有两种选择,而匿名是为什么它失败了? 是否始终将限制性最强的策略作为接入点绑定的默认策略? 我对IIS完全陌生,似乎我将不得不学习它以及WCF。
编辑:使用某些设置运行VS 2012时,还请确保以管理员身份运行VS,否则您可能也会遇到问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.