无法在 NET Framework 4.8 上的 app.config 中设置 sslProtocol

发布于 2025-01-12 00:31:53 字数 2095 浏览 2 评论 0原文

我正在尝试通过 app.config 文件配置 WCF 服务,因此它默认从操作系统获取 TLS 设置(实际上,我们希望该服务默认使用 TLS 1.2),并且我正在尝试遵循 .NET Framework 的传输层安全 (TLS) 最佳实践 文章。

但是当我尝试将 sslProtocols 参数添加到传输属性时,它似乎不存在。

我们是否缺少一些程序集或其他依赖项? NET Framework 4.8 以来它有变化吗?

我们的配置文件如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="siiBinding">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding1">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding2">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding3"/>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidas"/>
            <endpoint address="https://www10.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding1" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidasSello"/>
            <endpoint address="https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding2" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidasPruebas"/>
        </client>
    </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

I am trying to configure a WCF service through the app.config file so it defaults to getting the TLS settings from the OS (we want the service to use TLS 1.2 as default, actually), and I am trying to follow the Transport Layer Security (TLS) best practices with the .NET Framework article.

But when I try to add the sslProtocols parameter to the transport attribute, it seems like it does not exist.

Do we lack some Assembly or other dependencies? Did it change from NET Framework 4.8?

Our config file is as follows:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="siiBinding">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding1">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding2">
                    <security mode="Transport"/>
                </binding>
                <binding name="siiBinding3"/>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidas"/>
            <endpoint address="https://www10.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding1" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidasSello"/>
            <endpoint address="https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP" binding="basicHttpBinding" bindingConfiguration="siiBinding2" contract="SuministroFactEmitidasReference.siiSOAP" name="SuministroFactEmitidasPruebas"/>
        </client>
    </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲娇萝莉攻 2025-01-19 00:31:53

确保您的 system.web 与以下类似:

<system.web>
       <compilation targetFramework="4.8"></compilation>
       <httpRuntime targetFramework="4.8" />
</system.web>

和传输模式

  <binding name="secureHttpBinding">  
       <security mode="Transport">  
            <transport clientCredentialType="None"/>  
       </security>  
   </binding> 

尝试使用 System.Net 添加到 global.asax.cs 中。

System.Net.ServicePointManager.SecurityProtocol =  SecurityProtocolType.Tls12;

有关详细信息,您可以查看文档。
如何:使用 SSL 配置 IIS 托管的 WCF 服务
TcpTransportSecurity。 SslProtocols 属性

Make sure your system.web is similar to the following:

<system.web>
       <compilation targetFramework="4.8"></compilation>
       <httpRuntime targetFramework="4.8" />
</system.web>

and transfer mode

  <binding name="secureHttpBinding">  
       <security mode="Transport">  
            <transport clientCredentialType="None"/>  
       </security>  
   </binding> 

Try adding in global.asax.cs using System.Net.

System.Net.ServicePointManager.SecurityProtocol =  SecurityProtocolType.Tls12;

For details you can check the documentation.
How to: Configure an IIS-hosted WCF service with SSL
TcpTransportSecurity.SslProtocols Property

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文