BizTalk 2013 WCF-WSHttp Send port - biztalk

I am calling a third party service. Binding information contains TransportType as Name="WCF-BasicHttp". I have consumed this service in my orchestration. I need to create send port with WCF-WSHTTP in BizTalk admin console. But I am getting below error. I have set security as NONE.
Error information:
System.Net.WebException: Content Type application/soap+xml; charset=utf-8 was not supported by service The client and service bindings may be mismatched
How do I fix this?

If the binding specifies basic-http binding, if there any specific reason to create send port with WCF-WSHttp binding ?
Have you tried creating the send port with WCF-Basichttp binding ?

the security is a server side point. you have to use the same binding as the service from the server side.

Related

How to call a webservice using BizTalk 2013 R2 dynamic port

Can anyone tell me what I'm doing wrong or how to do it correct.
I have an BizTalk 2013 R2 project with an orchestration. The orchestration has an receive port (AnyType schema) and dynamic send port (AnyType schema).
When a receive a soap message I do this in the "ConstructMessage" with an MessageAssigment shape:
Message_1 = opeTestPerson;
Message_1(*) = opeTestPerson(*);
Message_1(SOAP.AuthenticationScheme)="Anonymous";
Message_1(SOAP.MethodName)="opeTestPerson";
Message_1(BTS.SOAPAction)="http://XXXX.dk/TestPerson/opeTestPersonIn";
Message_1(BTS.OutboundTransportType)="SOAP";
CallOpeHentPersionPort(Microsoft.XLANGs.BaseTypes.Address) = #"http://XXXX.dk/serTestPerson.asmx";
But when BizTalk try to call the webservice URL I get this error:
The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs.
The strange ting is that the Web-server does not log any errors.
So can anyone tell how to call a web-service using dynamic port and send the SOAP header?
PS. I don't use a proxy call for calling, just direct call, because I need to call different URL depending on the incoming message.

Receive Port is not showing up in the list of Activation Subscriptions

I'm troubleshooting a very generic BizTalk error that is resulting in transmission/routing failures (see below). Even though my receive location is started, it does not appear to be listening for anything. When I run a query for all Activation Subscriptions, the receive port is not showing up in the list. I cannot figure out why it is not subscribing to my send ports.
Error:
The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure.
One Way Receive locations don't have Active subscriptions, only Orchestrations, Send Port Groups and Send Ports do. For a One Way your Send Port should be listening to your Receive Port rather than your Receive Port to your Send Port.
If it is a Request / Response port then see section below
One Way Receive Location
A Receive Location picks up from an external location and it goes via the associated receive port and publishes into the message box.
As your error clearly indicates that the message has been published to the message box the receive port is obviously working (although maybe not correctly) or it has been published back from a send port or orchestration.
What you have to check is
The context properties on the suspended message using BizTalk Administrator
The Subscription belonging to the Send Port / Orchestration that you expect to handle the message
Compare the two and see what does not match
The possibilities are
Your Receive Port is not promoting the properties you expect. Check the receive pipeline and promoted properties on the schema. If your pipeline is set to pass thru, only some of the standard promoted properties will be there and no message type or promoted properties from the schema, if you need those promoted properties set your pipeline to XMLReceive or a custom pipeline with either a XML Disassembler or a Flat File one.
Your Send Port / Orchestration are not in an Enlisted state, if they aren't enlisted then no subscriptions are published for them. Enlist or Start them.
Your Send port/Orchestration subscription is wrong (does not match the message context properties), correct them so that they match.
Request/Response Receive Port
For a Request Response Receive location/port it creates an Instance Subscription for a message which looks for BTS.EpmRRCorrelationToken (which contains details of the hostinstance, port and a GUID) and BTS.RouteDirectToTP == True
It works out of the box if you either have a Request/Response Send port subscribing to a Request/Response receive port, or if you use a Request/Response Port in an Orchestration. If you use separate Receive Send Ports in the Orchestration you need to set the above properties in your message construct shape manually.
See Messaging-only request-response correlation
Thanks for the clarification on receive locations. I'm new to BizTalk, as I have recently inherited the role of supporting it. The problem ended up being an incorrect reference in an endpoint behavior extension in the receive location.

biztalk server 2010 Error Routiing through SMTP send port

I have got a simple BizTalk Application in which there is only one schema and pipeline. I have simply add XML Validator in validate stage of pipeline.I have deployed this app in BizTalk Server 2010.
Now I have created a receive location which takes a XML file and set its receive pipeline which i have created. I have also marked "Enable routing for failed messaged" in receive port.
I have also created a SMTP send port and and configured it with mail server name and etc.
Receive port is working fine but send port is unable to send emails.
When i check "Track Service Instance" is shows an error "Transport failed to connect to the server".
Update: I am using Gmail SMTP server name in order to send e-mails and I am getting the error "The server rejected the sender address. The server response was: 530 5.7.0 Must issue a STARTTLS command first. ye1sm22267001pab.19 - gsmtp"
Where could be the problem? Any help will be appreciated
With that error in your update the problem is clear.
The Gmail server is expecting a SSL connection.
See SMTP TLS problem
The standard SMTP adapter does not support SSL/TLS connections.
You will need to write a custom adapter or purchase a third party
adapter to support SSL connections
http://www.nsoftware.com/products/biztalk/adapters/emails.aspx
Greg.Forsythe
EDIT: An alternative is to connect to a local SMTP server that doesn't require SSL/TLS and let it route the e-mails.
Are you running 32 bit or 64 bit? Is your tracking host in 32 bit or 64 bit? MIME/SMIME encoder pipeline can't run in 64 bit mode... are you using that?
http://msdn.microsoft.com/en-us/library/gg634591.aspx
"Transport failed to connect to the server"
This error message basically means the BizTalk SMTP adapter is unable to connect to the SMTP server or the server does not allow to send the e-mail.
Try connecting to the SMTP server with the telnet client (you may need to install this as an additional feature) or by configuring the proxy (available on the SMTP adapter and adapter defaults).
It might also be the case that you need to authenticate towards the SMTP server.
Also, some SMTP servers do not allow to send an e-mail from an unknown domain like "someone#notthenameofthecompany.com".
Hope this helps.

Flex AIR Application Connecting to RemoteObject Through Proxy

I am having some issues trying to make an AIR application connect to a RemoteObject when the application is run in a domain that has proxy servers for outbound connection.
The error provided is as below:
[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'http://myTestService.org:8080/default/message/amf'"]
Any ideas? I think the proxy server may be preventing the application from accessing the Remote Object. How do I work around this?
Thanks.
Edit:
I saw a quite similar post to this:
Remoting with AIR
And I did declared the endpoint and destination to my RemoteObject.
In application/WEB-INF/flex/services-config.xml give only relative paths, do not use ip address and port number. You can look here for detail moving to production server
And here send failed error
In your case channel url should be
"/default/message/amf"
Drupal RPC Fault looks to be some what same as your problem and has issues with crossdomain.xml
Do check it.

BizTalk - Exception Handling and Send Alert to System Administrator

In Microsoft BizTalk Application when exception occurred then Services or port will goes to in suspended mode and need to manually start application or port.
What i want is when any exceptions occurred during message processing should send one email alert to system administrator and details of exception should be stored in separate database for further process.
Anyone have any better suggestion how we can do it.
Regards,
Rakesh
To handle the message failure secnario see using Failed Message Routing. As far as monitoring ports when they shut down you can either use MOM (expensive) or write a script to do what you want. There are many posts here in stackoverflow that address this... here is one such post.
To get an email alert sent for any messaging failures (i.e., a failure in a send or receive port)
For each send or receive port for which you want to track failures, edit the port properties and check the box for "Enable routing for failed messages"
For send ports, you'll find this option under "Transport Advanced Options".
The option for receive ports is under the General section of the port properties.
Create a new Send Port (perhaps in a separate "Exception Handling" BizTalk application) that uses the SMTP adapter to send the emails.
To send out all failed messages using this new port, create a filter on the send port with the Property ErrorReport.ErrorType == FailedMessage. That will evaluate as true for all messages that error on a send or receive port for which you enabled Failed Message Routing.
If you need to route messages differently, at a more granular level, then have a look at the properties on the Failed Message Routing page referenced by ChrisLoris.
To track exceptions for failed messages in a separate database, I would start with the Microsoft BizTalk ESB Toolkit Exception Management Framework, as it includes a database for this purpose and the mechanism to push exception/failed message data into that database (build atop Failed Message Routing). It even includes a web site to enable users to interact with the failed messages, which you can customize as you see fit or throw away altogether.
The instructions to install the just the Exception Management part of the ESB Toolkit are available at http://msdn.microsoft.com/en-us/library/ee250099.aspx. Microsoft's guide to using the ESB Exception Management is worth a review too and is here.

Resources