还有其他几个与此错误有关的问题(大多数关于相对地址 - 这些不是我正在寻找的,因为我们不使用相对地址)
我们有一个部署在多个环境中的WCF服务没有问题 - 但是在封闭网络上的最新安装(使用https),我们收到错误:
没有协议绑定与给定地址“fiddle”匹配。协议绑定在IIS或WAS配置中的站点级别配置。
我们可以很好地访问网站的根目录(使用https),因此我们非常确定这是我们绑定的配置问题 - 但我们没有想法。
该服务的web.config配置如下:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service.BasicHttp.BindingConfig">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="SomeTestService" behaviorConfiguration="SomeTestService">
<endpoint address="https://domain.local:443/testservice.svc" binding="basicHttpBinding" bindingConfiguration="Service.BasicHttp.BindingConfig" contract="ISomeTestService" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SomeTestService">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
错误的完整堆栈跟踪是:
[InvalidOperationException:没有协议绑定与给定的匹配 地址“https://domain.local/programmeservice.svc”。协议绑定 在IIS或WAS配置中的站点级别配置。] System.ServiceModel.Activation.HostedAspNetEnvironment.GetBaseUri(字符串 transportScheme,Uri listenUri)+154751
System.ServiceModel.Channels.TransportChannelListener.OnOpening() +16284708 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan 超时)+255
System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(时间跨度 超时)+72[InvalidOperationException:ChannelDispatcher at 合同'https://domain.local/programmeservice.svc' '“ProgrammeService”'无法打开其IChannelListener。] System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(时间跨度 超时)+145
System.ServiceModel.Channels.CommunicationObject.Open(时间跨度 timeout)+301 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan 超时)+130
System.ServiceModel.Channels.CommunicationObject.Open(时间跨度 超时)+301
System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo,EventTraceActivity eventTraceActivity)+129
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath,EventTraceActivity eventTraceActivity)+741[ServiceActivationException:服务'/programmeservice.svc' 由于编译期间的异常,无法激活。该 异常消息是:ChannelDispatcher at 合同'https://domain.local/programmeservice.svc' '“ProgrammeService”'无法打开其IChannelListener ..]
System.Runtime.AsyncResult.End(IAsyncResult result)+607194
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的 结果)+231
System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult的 ar)+177
答案 0 :(得分:0)
在不太可能发生的情况下,这证明对其他人有用 - 这对我们的构建脚本来说是一个问题,它们创建了带有额外字符的端点地址,这显然不符合绑定... 就像错误信息告诉我们整个时间一样。
如果您发现类似的错误,请仔细检查所提供的服务端点地址确实是否与您在IIS中设置的地址相匹配。