配置绑定扩展';system.serviceModel/bindings/basicHttpsBinding
本文关键字:bindings basicHttpsBinding serviceModel 绑定 扩展 配置 system | 更新日期: 2023-09-27 18:27:46
当我尝试导航到.svc文件时,会出现此错误。它似乎没有找到我的basicHttpsBinding;这是我的web.config中的部分:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>
我试着在谷歌上搜索,但我能找到的任何答案似乎都不适用于我在这里做的事情。我发现的大部分内容都是关于自定义绑定的,我想我没有。老实说,我甚至不确定是什么原因导致了这个错误,所以任何帮助都将不胜感激。如果您需要更多信息,请告诉我,我会添加它。
BasicHttpsBinding
是.NET 4.5中的一个新绑定,因此您不能在4.0应用程序中使用它。要么删除protocolMapping,要么使用另一个绑定,如basicHttpBinding
或wsHttpBinding
。
当您在IIS中配置SSL时,这也应该起作用。
如果您有与我类似的场景,其中Visual Studio生成的Web.config
具有以下配置:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<pages controlRenderingCompatibilityVersion="4.0" />
</system.web>
添加<httpRuntime targetFramework="4.5" />
所以你现在有
<system.web>
<compilation debug="true" targetFramework="4.5" />
<pages controlRenderingCompatibilityVersion="4.0" />
<httpRuntime targetFramework="4.5" />
</system.web>
我还删除了<pages controlRenderingCompatibilityVersion="4.0" />
,对我的情况没有任何影响。
从web.config
中删除protocolMapping
部分,它就可以工作了。
如果您使用框架4.5或更高版本,您可以将以下代码添加到web.config 中
可以在标记上设置以下属性。
<system.Web>
<httpRuntime targetFramework="4.8" />
</system.Web>
在VS2022上,我明确指定了targetFramework属性,如下所示:
从这个
<httpRuntime/>
到此
<httpRuntime targetFramework="4.8"/>
而且效果很好!