如何在WCF中修复"找不到与schema http匹配的基地址"....

Cra*_*rer 34 iis wcf basichttpbinding

我正在尝试将WCF服务部署到我的服务器,托管在IIS中.当然它适用于我的机器:)

但是当我部署它时,我收到以下错误:

此集合已包含方案http的地址.此集合中每个方案最多只能有一个地址.

谷歌搜索,我发现我必须将一个serviceHostingEnvironment元素放入web.config文件:

<serviceHostingEnvironment>
  <baseAddressPrefixFilters>
    <add prefix="http://mywebsiteurl"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>
Run Code Online (Sandbox Code Playgroud)

但是一旦我这样做了,我得到以下内容:

无法通过绑定BasicHttpBinding找到与端点的scheme http匹配的基址.注册的基地址方案是[https].

它似乎不知道基地址是什么,但我该如何指定呢?这是我的web.config文件的相关部分:

<system.serviceModel>
  <serviceHostingEnvironment>
    <baseAddressPrefixFilters>
      <add prefix="http://mywebsiteurl"/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>

  <behaviors>
    <serviceBehaviors>
      <behavior name="WcfPortalBehavior">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <basicHttpBinding>
      <binding name="BasicHttpBinding_IWcfPortal"
               maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
               receiveTimeout="00:10:00" sendTimeout="00:10:00"
               openTimeout="00:10:00" closeTimeout="00:10:00">
        <readerQuotas maxBytesPerRead="2147483647" maxArrayLength="2147483647"
               maxStringContentLength="2147483647"/>
      </binding>
    </basicHttpBinding>
  </bindings>

  <services>
    <service behaviorConfiguration="WcfPortalBehavior" name="Csla.Server.Hosts.Silverlight.WcfPortal">
      <endpoint address="" binding="basicHttpBinding" contract="Csla.Server.Hosts.Silverlight.IWcfPortal"
      bindingConfiguration="BasicHttpBinding_IWcfPortal">
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
  </services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

任何人都可以了解正在发生的事情以及如何解决这个问题?

小智 41

尝试将安全模式从"传输"更改为"无".

      <!-- Transport security mode requires IIS to have a
           certificate configured for SSL. See readme for
           more information on how to set this up. -->
      <security mode="None">
Run Code Online (Sandbox Code Playgroud)


ZaC*_*ter 5

我必须对站点/应用程序的 IIS 配置做两件事。我的问题与让 net.tcp 在 IIS 网站应用程序中工作有关:

第一的:

  1. 右键单击 IIS 应用程序名称。
  2. 管理网站
  3. 高级设置
  4. 将启用的协议设置为“http,net.tcp”

第二:

  1. 在管理器右侧的操作菜单下,单击绑定...
  2. 点击添加
  3. 将类型更改为“net.tcp”
  4. 将绑定信息设置为 {open port number}:*
  5. 好的


tom*_*asr 4

您的 IIS 是否有可能配置为在连接到您的站点/应用程序时需要 SSL?