Add basicHttpBinding to BizTalk ESB Toolkit WCF Service /ESB.ItineraryServices.WCF/ProcessItinerary.svc

冷暖自知 提交于 2021-01-28 02:53:39

问题


Just getting started with the ESB Toolkit 2.0 on BizTalk Server 2009. I can get a .NET client to talk to the ESB Toolkit WCF Service /ESB.ItineraryServices.WCF/ProcessItinerary.svc with no problem at all, however, we use a client technology that cannot process wsHttpBindings at all, it can only see the basicHttpBinding.

Does anyone have any idea how to add a basicHttpBinding to the web.config for this service? The web.config is shown below.

Many thanks for any help you can provide.

Andrew

<?xml version="1.0"?>
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
 <!--
    The <configSections> section declares handlers for custom configuration sections.
  -->
 <configSections>
  <section name="bizTalkSettings" type="Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkConfigurationSection, Microsoft.BizTalk.Adapter.Wcf.Runtime, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
   <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
     <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
     <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
     <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
     <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup></sectionGroup></configSections>
 <!--
    The <bizTalkSettings> section specifies BizTalk specific configuration.
  -->
 <bizTalkSettings>
  <!--
      mexServiceHostFactory debug:
      Set to "true" to launch debugger when MexServiceHostFactory.CreateServiceHost(...) is called by IIS.
      Used to debug from initial point of activation by IIS.
      Default value is "false" for normal operation.
    -->
  <mexServiceHostFactory debug="false">
   <receiveLocationMappings>
    <!--add markupFileName="*.svc" receiveLocationName="?" publicBaseAddress="protocol://host[:port]" /-->
   </receiveLocationMappings>
  </mexServiceHostFactory>
  <!--
      webServiceHostFactory debug:
      Set to "true" to launch debugger when WebServiceHostFactory.CreateServiceHost(...) is called by IIS.
      Used to debug from initial point of activation by IIS.
      Default value is "false" for normal operation.
    -->
  <webServiceHostFactory debug="false"/>
  <!--
      isolatedReceiver disable:
      Set to "true" to skip IBTTransportProxy.RegisterIsolatedReceiver(...) and IBTTransportProxy.TerminateIsolatedReceiver(...) calls.
      Used for testing metadata exchange without having to setup receive location.
      Default value is "false" for normal operation.
    -->
  <isolatedReceiver disable="false"/>
  <!--
      btsWsdlExporter disable:
      Set to "true" to skip adding BtsWsdlExporter behavior extension to service endpoint.
      Used for testing or comparing strongly-typed WSDL customization versus weakly-typed WSDL of generic WCF service.
      Default value is "false" for normal operation.
    -->
  <btsWsdlExporter disable="false"/>
 </bizTalkSettings>
 <appSettings/>
 <connectionStrings/>
 <system.web>
  <!-- 
      Set compilation debug="true" to insert debugging symbols into the compiled page.
      Because this affects performance, set this value to true only during development.
    -->
  <compilation defaultLanguage="c#" debug="false">
   <assemblies>
    <add assembly="mscorlib, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089"/>
    <add assembly="Microsoft.BizTalk.Adapter.Wcf.Common, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add assembly="Microsoft.BizTalk.Adapter.Wcf.Runtime, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
  </compilation>
  <!--
      The <authentication> section enables configuration of the security authentication mode
      used by ASP.NET to identify an incoming user.
    -->
  <authentication mode="None"/>   <!--  <authentication mode="Windows"/> -->
  <!--
      The <customErrors> section enables configuration of what to do if/when an unhandled error
      occurs during the execution of a request. Specifically, it enables developers to configure
      html error pages to be displayed in place of a error stack trace.
    -->
  <!--
    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
      <error statusCode="403" redirect="NoAccess.htm" />
      <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>
    -->
  <customErrors mode="RemoteOnly"/>
  <trust level="Full" originUrl=""/>
  <pages>
   <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></controls></pages>
  <httpHandlers>
   <remove verb="*" path="*.asmx"/>
   <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpHandlers>
  <httpModules>
   <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpModules></system.web>
 <!--
    The <system.serviceModel> section specifies Windows Communication Foundation (WCF) configuration.
  -->
 <system.serviceModel>
  <bindings/>
  <behaviors>
   <serviceBehaviors>
    <behavior name="ServiceBehaviorConfiguration">
     <serviceDebug httpHelpPageEnabled="true" httpsHelpPageEnabled="false" includeExceptionDetailInFaults="true"/>
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
     <soapHeaderMetadata enabled="true">
      <soapHeaders>
       <!--add headerTypeName="Itinerary" operation="SubmitRequest" message="Itinerary" operationType="Input" targetNamespace="http://schemas.microsoft.biztalk.practices.esb.com/itinerary" xsdFileName="Itinerary.xsd"/-->
       <add headerTypeName="ItineraryDescription" operation="SubmitRequest" message="ItineraryDescription" operationType="Input" targetNamespace="http://schemas.microsoft.biztalk.practices.esb.com/itinerary" xsdFileName="ItineraryDescription.xsd"/>
      </soapHeaders>
     </soapHeaderMetadata>
<!--
     <serviceCredentials>
      <windowsAuthentication allowAnonymousLogons="true"/>
     </serviceCredentials>
-->
     <serviceAuthorization/>
    </behavior>
   </serviceBehaviors>
  </behaviors>
  <services>
   <service behaviorConfiguration="ServiceBehaviorConfiguration" name="Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance">
    <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="HttpMexEndpoint" contract="IMetadataExchange"/>
      </service>
  </services>
  <extensions>
   <behaviorExtensions>
    <add name="soapHeaderMetadata" type="Microsoft.Practices.ESB.ServiceModel.Helpers.SoapHeaderMetadataExtensionElement, Microsoft.Practices.ESB.ServiceModel.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
   </behaviorExtensions>
  </extensions>
 </system.serviceModel>
 <system.codedom>
   <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
     <providerOption name="CompilerVersion" value="v3.5"/>
     <providerOption name="WarnAsError" value="false"/></compiler>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
     <providerOption name="CompilerVersion" value="v3.5"/>
     <providerOption name="OptionInfer" value="true"/>
     <providerOption name="WarnAsError" value="false"/></compiler></compilers></system.codedom>
 <system.webServer>
   <validation validateIntegratedModeConfiguration="false"/>
  <modules>
   <remove name="ScriptModule"/>
   <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></modules>
  <handlers>
   <remove name="WebServiceHandlerFactory-Integrated"/>
   <remove name="ScriptHandlerFactory"/>
   <remove name="ScriptHandlerFactoryAppServices"/>
   <remove name="ScriptResource"/>
   <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></handlers></system.webServer>
 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly>
   <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly></assemblyBinding></runtime></configuration>

回答1:


You need to create a new On Ramp with basic Http binding.

You can create the OnRamp using BizTalk WCF Service Publishing Wizard.

Copy Web.config file from original service.

Verify that the ProcessitinerarySevice.svc file has factory set to

Microsoft.BizTalk.Adapter.Wcf.Runtime.BasicHttpWebServiceHostFactory

And now you can start using basicHttp binding.

Check out this link: http://payalaryabhandari.blogspot.com/2010_06_01_archive.html




回答2:


In the binding tag you can add :

<basicHttpBinding>
  <binding name="basichttpbindingname">
    <security mode="TransportCredentialOnly">
      <transport clientCredentialType="Windows"/>
    </security>
    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
  </binding>
</basicHttpBinding>


来源:https://stackoverflow.com/questions/2056424/add-basichttpbinding-to-biztalk-esb-toolkit-wcf-service-esb-itineraryservices-w

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!