none
Dynamic Send Port HTTPS/ HTTP issue RRS feed

  • Question

  • Hello,

    I am using dynamic port and configuring that in orchestration with following statements

    GenericRequest(WCF.BindingType)="basicHttpBinding";
    GenericRequest(WCF.Action)="<Removed>";
    GenericRequest(WCF.UserName)="<Removed>";
    GenericRequest(WCF.Password)="<Removed>";
    GenericRequest(WCF.SecurityMode)="TransportWithMessageCredential";
    GenericRequest(WCF.MessageClientCredentialType)="UserName";
    GenericRequest(WCF.MessageEncoding)="Mtom";
    GenericRequest(WCF.AlgorithmSuite)="Basic256";

    Port_SendOutgoingXmlDocument(Microsoft.XLANGs.BaseTypes.Address)= @"https://<Removed>";
    Port_SendOutgoingXmlDocument(Microsoft.XLANGs.BaseTypes.TransportType)= "WCF-Custom";

    I am getting

    Error Description: System.ArgumentException: The provided URI scheme 'https' is invalid; expected 'http'.

    I have no idea what is wrong here. Same settings works perfectly fine when I use C# classes to call this service.

    Please advise.

    Note:-I just realised that I posted this in discussion and now can't move to question. Sorry for this!


    Tuesday, November 15, 2016 12:41 PM

Answers

  • The firs thing I would suggest is to not use dynamic ports if there is no reason for this. Dynamic ports sounds fancy and helps in certain situation but if u see its not needed or it can be avoided by nicely defined static port(s) then dont use it.

    Secondly, try the same setup via a static port and see what u observe.

    GenericRequest(WCF.SecurityMode)="TransportWithMessageCredential"; defines URI scheme if https or http can be used. Play around with this. You may be needing a different SecurityMode


    Pi_xel_xar

    Blog: My Blog

    BizTalkApplicationDeploymentTool: BizTalk Application Deployment Tool/


    Tuesday, November 15, 2016 12:46 PM
    Answerer
  • Hi BizTalk Consultant,

    TransportWithMEssageCredential works with the HTTP protocol, but the WCF-basicHttp binding simply doesn't work with the https protocol. You need to use the WCF-wshttp in that case

    GenericRequest(WCF.SecurityMode)="TransportWithMessageCredential";
    GenericRequest(WCF.MessageClientCredentialType)="UserName";

    doesn't work with the basic http binding,

    below are the screen shots referred from MSDN, please find the highlighted

    For : wcf-basichttp

    WCF-BasicHttp Transport Properties Dialog Box, Send, Security Tab

    For: wcf-wshttp

    Now I believe that the adapter that you need to use is WCF-WSHttp adapter. Please refer the screen shot below referred from MSDN again

    Reference : WCF-WSHttp Transport Properties Dialog Box, Send, Security Tab 

    Note: This being said, if you are planning to use only one send url then I would suggest you to not implement the dynamic send port and create a static send port in Biztalk Admin Console, in my opinion using static send ports is better option if the number of destination urls is less than 10, it is manageable

    Regards


    Mandar Dharmadhikari

    Tuesday, November 15, 2016 3:00 PM
    Moderator

All replies

  • The firs thing I would suggest is to not use dynamic ports if there is no reason for this. Dynamic ports sounds fancy and helps in certain situation but if u see its not needed or it can be avoided by nicely defined static port(s) then dont use it.

    Secondly, try the same setup via a static port and see what u observe.

    GenericRequest(WCF.SecurityMode)="TransportWithMessageCredential"; defines URI scheme if https or http can be used. Play around with this. You may be needing a different SecurityMode


    Pi_xel_xar

    Blog: My Blog

    BizTalkApplicationDeploymentTool: BizTalk Application Deployment Tool/


    Tuesday, November 15, 2016 12:46 PM
    Answerer
  • Hi BizTalk Consultant,

    TransportWithMEssageCredential works with the HTTP protocol, but the WCF-basicHttp binding simply doesn't work with the https protocol. You need to use the WCF-wshttp in that case

    GenericRequest(WCF.SecurityMode)="TransportWithMessageCredential";
    GenericRequest(WCF.MessageClientCredentialType)="UserName";

    doesn't work with the basic http binding,

    below are the screen shots referred from MSDN, please find the highlighted

    For : wcf-basichttp

    WCF-BasicHttp Transport Properties Dialog Box, Send, Security Tab

    For: wcf-wshttp

    Now I believe that the adapter that you need to use is WCF-WSHttp adapter. Please refer the screen shot below referred from MSDN again

    Reference : WCF-WSHttp Transport Properties Dialog Box, Send, Security Tab 

    Note: This being said, if you are planning to use only one send url then I would suggest you to not implement the dynamic send port and create a static send port in Biztalk Admin Console, in my opinion using static send ports is better option if the number of destination urls is less than 10, it is manageable

    Regards


    Mandar Dharmadhikari

    Tuesday, November 15, 2016 3:00 PM
    Moderator