【问题标题】:Exception: Could not find a base address that matches scheme net.tcp例外:找不到与方案 net.tcp 匹配的基地址
【发布时间】:2016-04-03 03:54:12
【问题描述】:

我一直在努力重新配置工作服务以添加 netTcp 端点。

服务托管在 IIS 8.5 上

我遇到了以下异常:

找不到与方案 net.tcp 匹配的基地址 具有绑定 NetTcpBinding 的端点。注册的基地址方案 是 [http,https]

堆栈跟踪:

[InvalidOperationException: 找不到匹配的基地址 具有绑定 NetTcpBinding 的端点的方案 net.tcp。挂号的 基地址方案是 [http,https]。]
System.ServiceModel.ServiceHostBase.MakeAbsoluteUri(Uri relativeOrAbsoluteUri,绑定绑定,UriSchemeKeyedCollection 基本地址)+16994291
System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase 主机,ServiceDescription 描述,ServiceElement serviceElement, Action`1 addBaseAddress, Boolean skipHost) +1092
System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader、ServiceDescription 描述、ServiceElement 服务部分)+89
System.ServiceModel.ServiceHost.ApplyConfiguration() +162
System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses) +207 System.ServiceModel.ServiceHost..ctor(类型 serviceType, Uri[] baseAddresses) +474
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(类型 serviceType, Uri[] baseAddresses) +42
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串 构造函数字符串,Uri[] baseAddresses) +569
System.ServiceModel.HostingManager.CreateService(字符串 normalizedVirtualPath, EventTraceActivity eventTraceActivity) +1435
System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +76
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901

[ServiceActivationException: 服务 '/servicebus.svc' 不能 由于编译期间的异常而激活。例外 消息是:找不到与方案 net.tcp 匹配的基地址 对于具有绑定 NetTcpBinding 的端点。注册基址 方案是 [http,https]..]
System.Runtime.AsyncResult.End(IAsyncResult 结果) +624522
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult 结果)+196075
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +166

  <services>
  <service name="Niloosoft.ServiceBus" behaviorConfiguration="AuthenticationAndAuthorizationSecurity">
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:7213"/>
      </baseAddresses>
    </host>

    <endpoint
      address="secureBus"
      binding="basicHttpBinding"
      bindingConfiguration="TransportSecurity"
      contract="Niloosoft.IServiceBus" />
    <endpoint
      address="tcpBus"
      binding="netTcpBinding"
      bindingConfiguration="ServiceBusTcpBinding"
      contract="Niloosoft.IServiceBus" />
    <endpoint
     address="tcpMex"
     binding="mexTcpBinding"
     contract="IMetadataExchange" />
    <endpoint
      address="mex"
      binding="mexHttpsBinding"
      contract="IMetadataExchange" />
  </service>
</services>

绑定配置似乎适用于其他服务,但我可能缺少其他内容。

IIS 对每个服务都有绑定配置,我在那里添加了一个带有 *:7213 地址的 tcp 绑定。

关于我缺少什么的任何建议和想法?我浏览了很多不同的帖子,看看我是否在某个地方犯了错误。

感谢所有帮助。

【问题讨论】:

  • 您需要在 IIS 中添加并启用 net.tcp 绑定。阅读:rohitguptablog.wordpress.com/2011/06/16/…
  • 这篇文章很有帮助,虽然 IIS 没有问题,但配置已关闭。谢谢!编辑:对于那些对这里出了什么问题感兴趣的人,是 httpgetenabled=true 导致了问题。它需要设置为 false。

标签: c# wcf net.tcp base-address


【解决方案1】:

问题是配置 HttpGetEnabled 设置为 true,如果您的 web 服务应该接受 HTTPS,则必须将其设置为 false。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2015-07-21
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多