为什么我需要设置两次aspNetCompatibilityEnabled?

时间:2011-09-27 14:50:12

标签: asp.net wcf web-services svc

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

我的一位同事的所有网络服务电话都失败了。他丢失了web.config设置并问我原因。我试着解释一下,但我不确定我是否能够:)

我认为这与Web服务代码的分离和Web服务托管的地方有关。 Web服务本身表示它需要兼容模式。然后还需要设置托管环境以说它应该以该兼容模式运行。 这基本上不是重点吗? 他仍然有一个问题:“但是,如果服务使用该属性,它是否应该是自动的?”

1 个答案:

答案 0 :(得分:2)

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

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

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

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