簡體   English   中英

WCF從基本轉到wsHttpBinding

[英]WCF Going from Basic to wsHttpBinding

我的配置現在可以正常工作,Visual Studio中的實際文件結構和項目結構之間不匹配。 愚蠢的愚蠢錯誤:)

但是,現在我遇到了從basicHttpBinding過渡到WsHttpBinding的問題。 這是webconfig。 如您所見,我將第一個端點更改為wsHttpBinding類型。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="RENTIT05ConnectionString" connectionString="Data Source=rentit.itu.dk;Initial Catalog=RENTIT05;Persist Security Info=True;User ID=Rentit05db;Password=omitted" providerName="System.Data.SqlClient" />
    <add name="RENTIT05Entities" connectionString="metadata=res://*/RentIt.csdl|res://*/RentIt.ssdl|res://*/RentIt.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=rentit.itu.dk;Initial Catalog=RENTIT05;Persist Security Info=True;User ID=Rentit05db;Password=omitted;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="10000000"/>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    <customErrors mode="Off" />
  </system.web>

  <system.serviceModel>
    <services>
      <service name="RentIt05.Services.Service" behaviorConfiguration="ServiceBehavior">
        <endpoint address="RentIt05.Services.AgeRatingService" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="RentIt05.Interfaces.IAgeRatingService"></endpoint>
        <endpoint address="RentIt05.Services.CommentService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.ICommentService"></endpoint>
        <endpoint address="RentIt05.Services.ItemService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IItemService"></endpoint>
        <endpoint address="RentIt05.Services.ItemTypeService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IItemTypeService"></endpoint>
        <endpoint address="RentIt05.Services.LabelService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.ILabelService"></endpoint>
        <endpoint address="RentIt05.Services.LoginService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.ILoginService"></endpoint>
        <endpoint address="RentIt05.Services.RatingService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IRatingService"></endpoint>
        <endpoint address="RentIt05.Services.SectionService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.ISectionService"></endpoint>
        <endpoint address="RentIt05.Services.StateLogService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IStateLogService"></endpoint>
        <endpoint address="RentIt05.Services.StateService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IStateService"></endpoint>
        <endpoint address="RentIt05.Services.UserGroupService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IUserGroupService"></endpoint>
        <endpoint address="RentIt05.Services.UserService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.IUserService"></endpoint>
        <endpoint address="RentIt05.Services.TransferService" binding="basicHttpBinding" bindingConfiguration="RentItBinding"  contract="RentIt05.Interfaces.ITransferService"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceThrottling maxConcurrentCalls="1000" maxConcurrentSessions="1000" maxConcurrentInstances="1000"/>
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
     <bindings>
       <basicHttpBinding>
         <binding name="RentItBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" transferMode="StreamedRequest">
           <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
         </binding>
       </basicHttpBinding>
      <wsHttpBinding>
        <binding name="wsHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
</configuration>

當我嘗試在localhost上本地運行此命令時,出現以下錯誤消息:

Could not find a base address that matches scheme https for the endpoint with binding WSHttpBinding. Registered base address schemes are [http].. 

我發現一些專家在談論IIS解析多個基址,但這是本地的,所以我不知道為什么它不起作用。

我在這里想念什么嗎? 只要我只使用basicHttpBindings,配置文件就可以正常工作。

任何幫助將不勝感激,tyvm!

您需要啟用安全性嗎? 您已在wsHttpBinding上啟用了傳輸安全性,它將查找ssl。 您的basicHttpBinding沒有使用任何。 如果您設置錯誤,錯誤將消失

    <binding name="wsHttpBinding">
      <security mode="None">

      </security>
    </binding>

另一種選擇是在IIS上設置ssl。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM