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
- FontStretchConverter.cs
- SqlClientPermission.cs
- CharEnumerator.cs
- CellNormalizer.cs
- invalidudtexception.cs
- RuleSet.cs
- Emitter.cs
- PartDesigner.cs
- DoubleKeyFrameCollection.cs
- ImageBrush.cs
- _Semaphore.cs
- ConnectionInterfaceCollection.cs
- RectangleConverter.cs
- TextBoxLine.cs
- StorageModelBuildProvider.cs
- FloatUtil.cs
- ResourceReferenceExpression.cs
- TaiwanLunisolarCalendar.cs
- ModelTreeManager.cs
- DispatcherSynchronizationContext.cs
- KnownTypes.cs
- SqlRetyper.cs
- ConnectionConsumerAttribute.cs
- IPEndPoint.cs
- GacUtil.cs
- WindowsRichEdit.cs
- Single.cs
- Expander.cs
- RuntimeEnvironment.cs
- MarkupObject.cs
- UniqueIdentifierService.cs
- InlineObject.cs
- CatalogZoneBase.cs
- ThrowHelper.cs
- FontDialog.cs
- DataBindEngine.cs
- MorphHelper.cs
- DrawListViewColumnHeaderEventArgs.cs
- login.cs
- BufferedGraphicsManager.cs
- TransformValueSerializer.cs
- IChannel.cs
- XmlText.cs
- TransformerInfo.cs
- SafeWaitHandle.cs
- XmlObjectSerializerReadContextComplex.cs
- ListViewItemMouseHoverEvent.cs
- SimpleTypeResolver.cs
- ConnectionPoolManager.cs
- ArcSegment.cs
- StructuredTypeInfo.cs
- SettingsProperty.cs
- MenuItem.cs
- XmlAttributeOverrides.cs
- OnOperation.cs
- ObjectParameterCollection.cs
- TypeResolver.cs
- FunctionImportElement.cs
- NumericPagerField.cs
- XmlDataImplementation.cs
- XamlBrushSerializer.cs
- CompiledRegexRunnerFactory.cs
- OperationContextScope.cs
- EncryptedReference.cs
- MatrixTransform3D.cs
- Exceptions.cs
- CqlGenerator.cs
- AxHost.cs
- PriorityBinding.cs
- DataGridViewDataConnection.cs
- DependencyObjectProvider.cs
- SqlTriggerContext.cs
- DES.cs
- ParameterCollection.cs
- _DynamicWinsockMethods.cs
- _SslState.cs
- RedirectionProxy.cs
- UserValidatedEventArgs.cs
- DataAdapter.cs
- XsdCachingReader.cs
- PropertyValue.cs
- WebRequestModulesSection.cs
- EncodingDataItem.cs
- DbProviderConfigurationHandler.cs
- BrowserCapabilitiesCodeGenerator.cs
- FormViewPageEventArgs.cs
- DataControlPagerLinkButton.cs
- AuthorizationRule.cs
- FixedSOMPageConstructor.cs
- RegistryKey.cs
- CommandField.cs
- datacache.cs
- ClientConfigPaths.cs
- ControlBindingsCollection.cs
- SimpleFieldTemplateFactory.cs
- ObjectDisposedException.cs
- UIElement3D.cs
- RangeBase.cs
- ClientConfigurationHost.cs
- RegexCode.cs