我希望将WCF用于直接http,并使用 NOT http s 来为服务通信提供服务。两者都托管在IIS中,两者都在同一台机器上。
目标端点是一个(旧的)asp.net Web应用程序,我使用.svc文件来托管WFC ......
<%@ ServiceHost Service="MyApp.MyWcfServiceLibrary.MyService" %>
我可以使用浏览器,我可以验证.svc
是否到达端点。
在“客户端”方面,我在web.config中有以下内容......
<wsHttpBinding>
<binding name="WSHttpBinding_ISecurityService">
<security mode="Message">
</security>
</binding>
</wsHttpBinding>
在我的所有测试系统上,一切都运行良好。我现在有另一个系统,无论我对配置做什么,我都会得到一条消息......
The provided URI scheme 'https' is invalid; expected 'http'. Parameter name: via at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) at System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) at System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannelCore(EndpointAddress remoteAddress, Uri via) at System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) at .....
如果我在系统上注销m_serviceClient.ChannelFactory.Endpoint.ListenUri
的值,它始终只是 http ,但在问题系统上,它总是 https 。
https
来自哪里,我没有IDEA。我已经尝试了一切来摆脱它。我已经尝试了wsHttpBinding
中我可以找到的所有设置组合,但没有工作。我已经阅读了数以千计的其他帖子,但大多数人似乎想要采取其他方式(即http - > https),到目前为止还没有人帮助过。
有没有人知道为什么这会将ChannelFactory设置为使用https,而其他系统只是http。
提前感谢您提供任何帮助