将AspNetCompatibilityRequirements属性添加到Biztalk Wcf服务

时间:2016-09-20 23:54:20

标签: asp.net .net web-services wcf biztalk

我正在尝试按照权限要求获取Biztalk 2009 WCF接收位置锁定,因此只有某组用户可以使用服务web.config中的授权规则访问WSDL和服务

<authorization>
<allow users="uuu\InterfaceUser" />
<allow roles="AllowedTeam" />
<deny users="*" />
</authorization>

我在web.config中启用了以下内容,认为它可以解决问题。

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>

并遇到了错误

无法激活该服务,因为它不支持ASP.NET兼容性。为此应用程序启用了ASP.NET兼容性。在web.config中关闭ASP.NET兼容模式,或者将AspNetCompatibilityRequirements属性添加到服务类型,其RequirementsMode设置为“Allowed”或“Required”。

我知道我需要做的是添加以下内容:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

到服务,但是通过Biztalk WCF服务向导生成,所以我不确定如何配置这个。

接收位置是 WCF-CustomIsolated ,但我没有在传输属性中看到打开AspNetCompatibilityRequirements属性的行为。 BindingType为 basicHttp 安全性为 TransportWithMessageCredentials

任何想法或指导都会有所帮助。

我必须在服务和wsdl上进行身份验证。

1 个答案:

答案 0 :(得分:0)

经过进一步研究后,看起来似乎无法将asp.net兼容性集成到服务中。这意味着添加

IS NULL

赢得不可能。

我所做的解决方案是实际构建一个自定义行为以使用ASP.NET URL授权模块。

感谢Dean May提供的解决方案

https://phidiax.com/blog/post/securing-biztalk-wcf-receive-locations