2

谁能解释一下为什么在创建要使用的 WCF Web 服务时HttpContext.Current.Items需要在 2 个地方添加一些代码?一个在 web 服务本身 ( [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]) 和一个在 web.config 文件 ( <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />)?

我的一位同事刚刚让他所有的网络服务调用都失败了。他缺少 web.config 设置并问我为什么。我试图解释,但我不确定我是否能够:)

我认为这与 web 服务代码的分离和 web 服务的托管位置有关。网络服务本身说它需要那种兼容模式。然后还需要设置托管环境以说明它应该在该兼容模式下运行。这不是重点吗?他还有一个问题:“但是,如果服务使用那个属性,应该不会是自动的吧?”

4

1 回答 1

2

第一个告诉 WCF 必须启用 aspcompat,第二个会启用它。你应该可以不用第一个。

这会强制配置 WCF 服务的人员使用正确的配置。

MS 设计这个的想法是配置服务的人可能是其他人,而不是制作它的人。

回答他的最后一个问题。当您向服务添加属性时,您并没有配置主机,而是要求如何配置主机。配置发生在主机上。

于 2011-09-27T14:53:18.133 回答