Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / ComIntegration / ComPlusDiagnosticTraceRecords.cs / 1 / ComPlusDiagnosticTraceRecords.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.ComIntegration { using System; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.IO; using System.Globalization; using System.Diagnostics; using System.Runtime.Serialization; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System.ServiceModel.Diagnostics; using System.ServiceModel; using WsdlNS = System.Web.Services.Description; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Transactions; using System.ServiceModel.Configuration; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.Security.Principal; using System.EnterpriseServices; using System.Collections.Generic; using ServiceModelSR = System.ServiceModel.SR; static class ComPlusServiceHostTrace { public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusServiceHostSchema record = new ComPlusServiceHostSchema(info.AppID, info.Clsid); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, ContractDescription contract) { if (DiagnosticUtility.ShouldTrace(type)) { XmlQualifiedName contractQName = new XmlQualifiedName(contract.Name, contract.Namespace); ComPlusServiceHostCreatedServiceContractSchema record = new ComPlusServiceHostCreatedServiceContractSchema(info.AppID, info.Clsid, contractQName, contract.ContractType.ToString()); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, ServiceDescription service) { if (DiagnosticUtility.ShouldTrace(type)) { WsdlExporter exporter = new WsdlExporter(); string serviceNs = NamingHelper.DefaultNamespace; XmlQualifiedName serviceQName = new XmlQualifiedName("comPlusService", serviceNs); exporter.ExportEndpoints(service.Endpoints, serviceQName); WsdlNS.ServiceDescription wsdl = exporter.GeneratedWsdlDocuments[serviceNs]; ComPlusServiceHostStartedServiceDetailsSchema record = new ComPlusServiceHostStartedServiceDetailsSchema(info.AppID, info.Clsid, wsdl); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, ServiceEndpointCollection endpointCollection) { if (DiagnosticUtility.ShouldTrace(type)) { foreach (ServiceEndpoint endpoint in endpointCollection) { ComPlusServiceHostCreatedServiceEndpointSchema record = new ComPlusServiceHostCreatedServiceEndpointSchema(info.AppID, info.Clsid,endpoint.Contract.Name, endpoint.Address.Uri, endpoint.Binding.Name); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } } static class ComPlusDllHostInitializerTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Guid appid) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusDllHostInitializerSchema record = new ComPlusDllHostInitializerSchema(appid); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, Guid appid, Guid clsid, ServiceElement service) { if (DiagnosticUtility.ShouldTrace(type)) { foreach (ServiceEndpointElement endpointElement in service.Endpoints) { ComPlusDllHostInitializerAddingHostSchema record = new ComPlusDllHostInitializerAddingHostSchema(appid, clsid, service.BehaviorConfiguration, service.Name, endpointElement.Address.ToString(), endpointElement.BindingConfiguration, endpointElement.BindingName, endpointElement.BindingNamespace, endpointElement.Binding, endpointElement.Contract); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } } static class ComPlusTLBImportTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Guid iid, Guid typeLibraryID) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusTLBImportSchema record = new ComPlusTLBImportSchema(iid, typeLibraryID); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, Guid iid, Guid typeLibraryID, string assembly) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusTLBImportFromAssemblySchema record = new ComPlusTLBImportFromAssemblySchema(iid, typeLibraryID, assembly); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, Guid iid, Guid typeLibraryID, ImporterEventKind eventKind, int eventCode, string eventMsg) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusTLBImportConverterEventSchema record = new ComPlusTLBImportConverterEventSchema(iid, typeLibraryID, eventKind, eventCode, eventMsg); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusInstanceCreationTrace { public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, Message message, Guid incomingTransactionID) { if (DiagnosticUtility.ShouldTrace(type)) { WindowsIdentity callerIdentity = MessageUtil.GetMessageIdentity(message); Uri from = null; if (message.Headers.From != null) from = message.Headers.From.Uri; ComPlusInstanceCreationRequestSchema record = new ComPlusInstanceCreationRequestSchema(info.AppID, info.Clsid, from, incomingTransactionID, callerIdentity.Name); Guid activityId = TraceUtility.ExtractActivityId(message); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record, null, activityId, null); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, Message message, int instanceID, Guid incomingTransactionID) { if (DiagnosticUtility.ShouldTrace(type)) { WindowsIdentity callerIdentity = MessageUtil.GetMessageIdentity(message); Uri from = null; if (message.Headers.From != null) from = message.Headers.From.Uri; ComPlusInstanceCreationSuccessSchema record = new ComPlusInstanceCreationSuccessSchema(info.AppID, info.Clsid, from, incomingTransactionID, callerIdentity.Name, instanceID); Guid activityId = TraceUtility.ExtractActivityId(message); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record, null, activityId, null); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, InstanceContext instanceContext, int instanceID) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusInstanceReleasedSchema record = new ComPlusInstanceReleasedSchema(info.AppID, info.Clsid, instanceID); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusActivityTrace { internal static readonly Guid IID_IComThreadingInfo = new Guid("000001ce-0000-0000-C000-000000000046"); internal static readonly Guid IID_IObjectContextInfo = new Guid("75B52DDB-E8ED-11d1-93AD-00AA00BA3258"); public static void Trace(TraceEventType type, TraceCode code, string description) { if (DiagnosticUtility.ShouldTrace(type)) { Guid guidLogicalThreadID = Guid.Empty; Guid guidActivityID = Guid.Empty; IComThreadingInfo comThreadingInfo; comThreadingInfo = (IComThreadingInfo)SafeNativeMethods.CoGetObjectContext(IID_IComThreadingInfo); if (comThreadingInfo != null) { comThreadingInfo.GetCurrentLogicalThreadId(out guidLogicalThreadID); IObjectContextInfo contextInfo = comThreadingInfo as IObjectContextInfo; if (contextInfo != null) { contextInfo.GetActivityId(out guidActivityID); } } ComPlusActivitySchema record = new ComPlusActivitySchema(guidActivityID, guidLogicalThreadID, System.Threading.Thread.CurrentThread.ManagedThreadId, SafeNativeMethods.GetCurrentThreadId()); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusMethodCallTrace { static readonly Guid IID_IComThreadingInfo = new Guid("000001ce-0000-0000-C000-000000000046"); static readonly Guid IID_IObjectContextInfo = new Guid("75B52DDB-E8ED-11d1-93AD-00AA00BA3258"); public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, Uri from, string action, string callerIdentity, Guid iid, int instanceID, bool traceContextTransaction) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusMethodCallSchema record = null; Guid guidContextTrsansactionID = Guid.Empty; if (traceContextTransaction) { IComThreadingInfo comThreadingInfo; comThreadingInfo = (IComThreadingInfo)SafeNativeMethods.CoGetObjectContext(IID_IComThreadingInfo); if (comThreadingInfo != null) { IObjectContextInfo contextInfo = comThreadingInfo as IObjectContextInfo; if (contextInfo != null) { if (contextInfo.IsInTransaction()) contextInfo.GetTransactionId(out guidContextTrsansactionID); } } if (guidContextTrsansactionID != Guid.Empty) { record = new ComPlusMethodCallContextTxSchema(from, info.AppID, info.Clsid, iid, action, instanceID, System.Threading.Thread.CurrentThread.ManagedThreadId, SafeNativeMethods.GetCurrentThreadId(), callerIdentity, guidContextTrsansactionID); } } else { record = new ComPlusMethodCallSchema(from, info.AppID, info.Clsid, iid, action, instanceID, System.Threading.Thread.CurrentThread.ManagedThreadId, SafeNativeMethods.GetCurrentThreadId(), callerIdentity); } if (record != null) DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, Uri from, string action, string callerIdentity, Guid iid, int instanceID, Guid incomingTransactionID, Guid currentTransactionID) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusMethodCallTxMismatchSchema record = new ComPlusMethodCallTxMismatchSchema(from, info.AppID, info.Clsid, iid, action, instanceID, System.Threading.Thread.CurrentThread.ManagedThreadId, SafeNativeMethods.GetCurrentThreadId(), callerIdentity, incomingTransactionID, currentTransactionID); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } public static void Trace(TraceEventType type, TraceCode code, string description, ServiceInfo info, Uri from, string action, string callerIdentity, Guid iid, int instanceID, Guid guidIncomingTransactionID) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusMethodCallNewTxSchema record = new ComPlusMethodCallNewTxSchema(from, info.AppID, info.Clsid, iid, action, instanceID, System.Threading.Thread.CurrentThread.ManagedThreadId, SafeNativeMethods.GetCurrentThreadId(), callerIdentity, guidIncomingTransactionID); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusServiceMonikerTrace { public static void Trace(TraceEventType type, TraceCode code, string description, DictionarypropertyTable) { if (DiagnosticUtility.ShouldTrace(type)) { string address = null; string contract = null; string binding = null; string bindingConfig = null; string spnIdentity = null; string upnIdentity = null; string dnsIdentity = null; string wsdlText = null; string mexAddress = null; string mexBinding = null; string mexBindingConfiguration = null; string mexSpnIdentity = null; string mexUpnIdentity = null; string mexDnsIdentity = null; string contractNamespace = null; string bindingNamespace = null; WsdlNS.ServiceDescription wsdl = null; propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.Wsdl, out wsdlText); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.Contract, out contract); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.Address, out address); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.Binding, out binding); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.BindingConfiguration, out bindingConfig); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.SpnIdentity, out spnIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.UpnIdentity, out upnIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.DnsIdentity, out dnsIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexAddress, out mexAddress); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexBinding, out mexBinding); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexBindingConfiguration, out mexBindingConfiguration); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexSpnIdentity, out mexSpnIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexUpnIdentity, out mexUpnIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.MexDnsIdentity, out mexDnsIdentity); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.ContractNamespace, out contractNamespace); propertyTable.TryGetValue (MonikerHelper.MonikerAttribute.BindingNamespace, out bindingNamespace); if (!String.IsNullOrEmpty(wsdlText)) { TextReader reader = new StringReader (wsdlText); wsdl = WsdlNS.ServiceDescription.Read (reader); } ComPlusServiceMonikerSchema record = new ComPlusServiceMonikerSchema(address, contract, contractNamespace, wsdl,spnIdentity, upnIdentity, dnsIdentity, binding, bindingConfig, bindingNamespace, mexAddress, mexBinding, mexBindingConfiguration, mexSpnIdentity, mexUpnIdentity, mexDnsIdentity); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusWsdlChannelBuilderTrace { public static void Trace(TraceEventType type, TraceCode code, string description, XmlQualifiedName bindingQname, XmlQualifiedName contractQname, WsdlNS.ServiceDescription wsdl, ContractDescription contract, Binding binding, XmlSchemas schemas) { if (DiagnosticUtility.ShouldTrace(type)) { string name = "Service"; if (wsdl.Name != null) name = wsdl.Name; Type contractType = contract.ContractType; XmlQualifiedName serviceName = new XmlQualifiedName(name, wsdl.TargetNamespace); foreach (XmlSchema schema in schemas) { ComPlusWsdlChannelBuilderSchema record = new ComPlusWsdlChannelBuilderSchema(bindingQname, contractQname, serviceName, (contractType != null)? contractType.ToString():null, (binding != null)? (binding.GetType()).ToString():null, schema); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } } static class ComPlusMexChannelBuilderMexCompleteTrace { public static void Trace (TraceEventType type, TraceCode code, string description, ServiceEndpointCollection serviceEndpointsRetrieved) { if (DiagnosticUtility.ShouldTrace(type)) { int nIndex = 0; ComPlusMexBuilderMetadataRetrievedEndpoint [] endpoints = new ComPlusMexBuilderMetadataRetrievedEndpoint [serviceEndpointsRetrieved.Count]; foreach (ServiceEndpoint endpoint in serviceEndpointsRetrieved) { endpoints [nIndex++] = new ComPlusMexBuilderMetadataRetrievedEndpoint (endpoint); } ComPlusMexBuilderMetadataRetrievedSchema record = new ComPlusMexBuilderMetadataRetrievedSchema (endpoints); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusMexChannelBuilderTrace { public static void Trace(TraceEventType type, TraceCode code, string description, ContractDescription contract, Binding binding, string address) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusMexChannelBuilderSchema record = new ComPlusMexChannelBuilderSchema (contract.Name, contract.Namespace, binding.Name, binding.Namespace, address); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusTypedChannelBuilderTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Type contractType, Binding binding) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusTypedChannelBuilderSchema record = new ComPlusTypedChannelBuilderSchema(contractType.ToString(), (binding != null)? (binding.GetType()).ToString():null); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusChannelCreatedTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Uri address, Type contractType) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusChannelCreatedSchema record = new ComPlusChannelCreatedSchema(address, (contractType != null)? contractType.ToString():null); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } static class ComPlusDispatchMethodTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Dictionary dispToOperationDescription) { if (DiagnosticUtility.ShouldTrace(type)) { UInt32 dispIndex = 10; System.ServiceModel.ComIntegration.DispatchProxy.MethodInfo methodInfo = null; while (dispToOperationDescription.TryGetValue (dispIndex, out methodInfo)) { ComPlusDispatchMethodSchema record = new ComPlusDispatchMethodSchema(methodInfo.opDesc.Name, methodInfo.paramList, methodInfo.ReturnVal); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); dispIndex++; } } } } static class ComPlusTxProxyTrace { public static void Trace(TraceEventType type, TraceCode code, string description, Guid appid, Guid clsid, Guid transactionID, int instanceID) { if (DiagnosticUtility.ShouldTrace(type)) { ComPlusTxProxySchema record = new ComPlusTxProxySchema(appid, clsid, transactionID, instanceID); DiagnosticUtility.DiagnosticTrace.TraceEvent(type, code, ServiceModelSR.GetString(description), record); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FontCacheLogic.cs
- SymmetricSecurityProtocolFactory.cs
- InternalPermissions.cs
- IntMinMaxAggregationOperator.cs
- PriorityBindingExpression.cs
- RelationshipConverter.cs
- CrossContextChannel.cs
- UnsafeMethods.cs
- MemberHolder.cs
- XmlCharType.cs
- LiteralControl.cs
- ApplicationBuildProvider.cs
- WebPartManager.cs
- PartialList.cs
- DeleteStoreRequest.cs
- Completion.cs
- FunctionMappingTranslator.cs
- PropertyIDSet.cs
- UpdateExpressionVisitor.cs
- HttpServerUtilityBase.cs
- NaturalLanguageHyphenator.cs
- SiteMapHierarchicalDataSourceView.cs
- ITreeGenerator.cs
- WizardPanel.cs
- EventProvider.cs
- WebPartDescriptionCollection.cs
- MimeFormatExtensions.cs
- DefaultBinder.cs
- wgx_sdk_version.cs
- ImageListDesigner.cs
- PlatformNotSupportedException.cs
- NavigationCommands.cs
- ObjectDataProvider.cs
- OleDbError.cs
- ToolStripPanel.cs
- ResourceSetExpression.cs
- ThreadInterruptedException.cs
- CaseStatementSlot.cs
- WebCategoryAttribute.cs
- GridViewAutomationPeer.cs
- DataProtection.cs
- ConfigPathUtility.cs
- ColumnResizeAdorner.cs
- ButtonChrome.cs
- SynthesizerStateChangedEventArgs.cs
- CanExpandCollapseAllConverter.cs
- InfoCardArgumentException.cs
- SurrogateEncoder.cs
- TypeValidationEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- GridProviderWrapper.cs
- QueueTransferProtocol.cs
- SelectionRangeConverter.cs
- LongSumAggregationOperator.cs
- InvariantComparer.cs
- ApplySecurityAndSendAsyncResult.cs
- TargetConverter.cs
- UdpAnnouncementEndpoint.cs
- DataGridPageChangedEventArgs.cs
- CancellationHandlerDesigner.cs
- CompatibleIComparer.cs
- BasicKeyConstraint.cs
- ServicePointManagerElement.cs
- MetaModel.cs
- SystemWebCachingSectionGroup.cs
- processwaithandle.cs
- ToolStripSeparatorRenderEventArgs.cs
- HttpCapabilitiesBase.cs
- BooleanStorage.cs
- HierarchicalDataTemplate.cs
- Ray3DHitTestResult.cs
- UnsafeNativeMethods.cs
- DbConnectionFactory.cs
- Event.cs
- SafeBitVector32.cs
- MimeMultiPart.cs
- XamlInt32CollectionSerializer.cs
- HashHelpers.cs
- PointAnimationBase.cs
- ByteArrayHelperWithString.cs
- PassportIdentity.cs
- SqlConnectionHelper.cs
- FilterException.cs
- OptionalMessageQuery.cs
- Int64Converter.cs
- NumberSubstitution.cs
- URL.cs
- UnsafeNativeMethodsPenimc.cs
- CollectionView.cs
- Executor.cs
- x509utils.cs
- DataServiceConfiguration.cs
- ObfuscateAssemblyAttribute.cs
- TraceInternal.cs
- QuerySettings.cs
- ContextMenuService.cs
- WebZone.cs
- TextEffectResolver.cs
- SemanticValue.cs
- ChtmlTextWriter.cs