我的 Web 应用程序使用多个 Web 服务,因此我对每个服务都有绑定,如下所示:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICityDataService" allowCookies="true" maxBufferPoolSize="10000000" maxBufferSize="10000000" maxReceivedMessageSize="10000000">
<readerQuotas maxDepth="32" maxStringContentLength="10000000" maxArrayLength="10000000" />
</binding>
<binding name="BasicHttpBinding_IBuildingDataService" allowCookies="true" maxBufferPoolSize="10000000" maxBufferSize="10000000" maxReceivedMessageSize="10000000">
<readerQuotas maxDepth="32" maxStringContentLength="10000000" maxArrayLength="10000000" />
</binding>
<binding name="BasicHttpBinding_IEventDataService" allowCookies="true" maxBufferPoolSize="10000000" maxBufferSize="10000000" maxReceivedMessageSize="10000000">
<readerQuotas maxDepth="32" maxStringContentLength="10000000" maxArrayLength="10000000" />
</binding>
...
</basicHttpBinding>
</bindings>
在我的开发环境中,我不能使用 SSL(也不需要它),但是当我去部署时,我必须使用 SSL,所以我需要为每个绑定添加一个安全模式。我应用了以下 XDT 转换:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding>
<security mode="Transport" xdt:Transform="Insert">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
但这只会将安全模式添加到第一个绑定中。但即使在阅读了XDT Transform 文档和大量文章以及 SO 问题/答案之后,我仍然无法弄清楚如何指定一个定位器来选择所有绑定,以便将子节点添加到所有绑定中。我可以按名称指定每个绑定,但这似乎很笨拙。有任何想法吗?