示例#1
0
        public static string GetOutboundTransportCLSID(string adapterName)
        {
            string outboundTansportCLSID = string.Empty;

            try
            {
                BizTalkServerRegistry bizTalkServerRegistry = default(BizTalkServerRegistry);
                bizTalkServerRegistry = Utility.GetMgmtServerInfo();
                string commandText = "SELECT OutboundEngineCLSID FROM BizTalkMgmtDb.dbo.adm_Adapter WHERE Name = '{0}'";
                using (SqlConnection connection = new SqlConnection(string.Format(btsMgmtDbConn, bizTalkServerRegistry.BizTalkMgmtDb, bizTalkServerRegistry.BizTalkMgmtDbName)))
                {
                    using (SqlCommand sqlCommand = new SqlCommand(string.Format(commandText, adapterName), connection))
                    {
                        connection.Open();
                        object obj = sqlCommand.ExecuteScalar();
                        connection.Close();
                        if (obj != null)
                        {
                            outboundTansportCLSID = obj.ToString();
                        }
                    }
                }
            }
            catch (Exception) { }

            return(outboundTansportCLSID);
        }
示例#2
0
        /// <summary>
        /// Builds Fault Message
        /// </summary>
        /// <param name="faultXml"></param>
        /// <param name="requestXml"></param>
        /// <param name="faultType"></param>
        /// <returns></returns>
        private static XLANGMessage GetFaultMessage(string faultXml, string requestXml, FaultType faultType)
        {
            XmlDocument           xmlDocument = new XmlDocument();
            string                appName     = string.Empty;
            XlangServiceInfo      serviceXlangInfo;
            BizTalkServerRegistry bizTalkServerRegistry = default(BizTalkServerRegistry);
            XLANGMessage          result;

            string xmlSafe = System.Net.WebUtility.HtmlEncode(requestXml);

            if (xmlSafe != requestXml)
            {
                requestXml = "Contents have been HTML Encoded: " + xmlSafe;
            }

            try
            {
                serviceXlangInfo      = GetServiceXlangInfo();
                bizTalkServerRegistry = Utility.GetMgmtServerInfo();

                appName = Utility.GetApplication(Utility.ServiceType.Orchestration, bizTalkServerRegistry.BizTalkMgmtDb, bizTalkServerRegistry.BizTalkMgmtDbName, Context.RootService.ServiceId.ToString(), string.Empty);
                xmlDocument.LoadXml(GetMessage(new object[]
                {
                    appName,
                    serviceXlangInfo.ServiceInstanceID,
                    serviceXlangInfo.ServiceName,
                    faultType,
                    "", //ArchiveTag for future use
                    "", //FaultEventId  for future use
                    "", //FaultDetails  for any additional info
                    "", //FaultSeverity  for future use
                    faultXml,
                    requestXml
                }));

                XmlDocumentSerializationProxy xmlDocumentSerializationProxy = (XmlDocumentSerializationProxy)xmlDocument;
                BTXMessage bTXMessage = new AvistaEsbInternalMsg("FaultMessage", Service.RootService.XlangStore.OwningContext);
                bTXMessage.AddPart("", "Body");
                bTXMessage[0].LoadFrom(xmlDocumentSerializationProxy.UnderlyingXmlDocument);

                SetMsgProperty(bTXMessage, typeof(ErrorReport.ErrorType), faultType.ToString());

                XLANGMessage messageWrapperForUserCode = bTXMessage.GetMessageWrapperForUserCode();
                result = messageWrapperForUserCode;
            }
            catch (Exception ex)
            {
                Logger.WriteWarning(ex.ToString(), 14000);
                throw ex;
            }
            finally
            {
                if (xmlDocument != null)
                {
                    xmlDocument = null;
                }
            }
            return(result);
        }