好的,完全披露我是 IIS 和 WCF 的新手,所以我买了一本书并被卡住了。我可以在工作时在我的开发盒上开发,因为它是带有 IIS 7 的 Windows 7,但在家里使用 Windows 8 和 IIS 8 我相信有两个问题,我只是不知道哪个步骤可能导致问题。我正在使用 Visual Studio 2012 Professional 在 .NET 4.5 环境中开发这两种环境。
基本上我认为 IIS 设置错误,因为我正在关注一本名为“Windows Communication Foundation 4,Step be Step”的书 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 设置,这些用户不存在,因此无法注册。注册用户的代码是:
'CREATE USER [IIS APPPOOL\DefaultAppPool] FOR LOGIN [IIS APPPOOL\DefaultAppPool] GO EXEC sp_addrolemember N'db_owner', [IIS APPPOOL\DefaultAppPool] GO GO CREATE USER [IIS APPPOOL\ASP.NET v4.0] FOR LOGIN [IIS APPPOOL\ASP.NET v4.0] GO EXEC sp_addrolemember N'db_owner', [IIS APPPOOL\ASP.NET v4.0] GO'
- 我知道 SQL 代码,但我知道他们试图引用的用户不存在,所以我可以通过 IIS 或通过控制面板添加它们吗?我不确定,所以我不知道 IIS,所以我想我应该先问一下。
非常感谢任何帮助,因为我知道这可能只是一个简单的方法。