当我尝试导航到我的.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"/>
我尝试在Google上搜索,但我找到的任何答案似乎都不适用于我在这里所做的事情。我发现的大部分内容都谈到了自定义绑定,我认为我没有。老实说,我甚至不确定是什么导致了这个错误,所以任何帮助都会非常感激。如果您需要更多信息,请告诉我,我会添加它。
答案 0 :(得分:18)
BasicHttpsBinding
是.NET 4.5中的新绑定,因此您无法在4.0应用程序中使用它。要么删除protocolMapping,要么使用其他绑定,例如basicHttpBinding
或wsHttpBinding
。
在IIS中配置SSL时,这也可以正常工作。
答案 1 :(得分:12)
如果您有类似我的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" />
,对我的情况没有任何影响。
答案 2 :(得分:1)
从protocolMapping
移除web.config
部分,它会起作用。
答案 3 :(得分:0)
如果使用框架4.5或更高版本,则可以将以下代码添加到web.config
可以在标记上设置以下属性。
<system.Web>
<httpRuntime targetFramework="4.8" />
</system.Web>