Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMSvcHost / System / ServiceModel / Activation / App.cs / 1 / App.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Activation
{
using System;
using System.ServiceModel.Channels;
using System.Collections.Generic;
using System.Diagnostics;
using System.Security.Principal;
using System.ServiceModel;
class App
{
string appKey;
AppPool appPool;
int siteId;
IActivatedMessageQueue messageQueue;
string path;
bool requestBlocked;
bool hasInvalidBinding;
AppAction pendingAction;
internal App(string appKey, string path, int siteId, AppPool appPool, bool requestsBlocked)
: base()
{
Debug.Print("App.ctor(appKey:" + appKey + " path:" + path + " appPoolId:" + appPool.AppPoolId + ")");
this.appKey = appKey;
this.path = path;
this.appPool = appPool;
this.siteId = siteId;
this.requestBlocked = requestsBlocked;
}
internal AppAction PendingAction
{
get
{
return this.pendingAction;
}
}
internal void SetPendingAction(AppAction action)
{
if (action != null)
{
DiagnosticUtility.DebugAssert(this.pendingAction == null, "There is already a pending action.");
}
this.pendingAction = action;
}
internal void RegisterQueue(IActivatedMessageQueue messageQueue)
{
if (this.messageQueue != null)
{
DiagnosticUtility.DebugAssert("a message queue was already registered");
throw DiagnosticUtility.ExceptionUtility.ThrowHelperInternal(false);
}
this.messageQueue = messageQueue;
}
internal string AppKey { get { return appKey; } }
internal AppPool AppPool { get { return appPool; } }
internal int SiteId { get { return siteId; } }
internal IActivatedMessageQueue MessageQueue { get { return messageQueue; } }
internal string Path
{
get
{
return path;
}
set
{
this.path = value;
}
}
internal void OnAppPoolChanged(AppPool newAppPool)
{
this.appPool = newAppPool;
}
internal void SetRequestBlocked(bool requestBlocked)
{
if (this.requestBlocked != requestBlocked)
{
this.requestBlocked = requestBlocked;
OnStateChanged();
}
}
internal void OnAppPoolStateChanged()
{
OnStateChanged();
}
internal void OnDeleted(bool appPoolDeleted)
{
messageQueue.Delete();
}
internal bool IsEnabled
{
get
{
return this.appPool.IsEnabled && !this.requestBlocked && !this.hasInvalidBinding;
}
}
internal void OnInvalidBinding(bool hasInvalidBinding)
{
this.hasInvalidBinding = hasInvalidBinding;
OnStateChanged();
}
void OnStateChanged()
{
messageQueue.SetEnabledState(this.IsEnabled);
}
}
}
// 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
- TextBlockAutomationPeer.cs
- IODescriptionAttribute.cs
- Point3DValueSerializer.cs
- DateTimeFormatInfo.cs
- ExtenderProvidedPropertyAttribute.cs
- XDeferredAxisSource.cs
- MinimizableAttributeTypeConverter.cs
- ButtonBase.cs
- CommandCollectionEditor.cs
- DesignSurface.cs
- TemplatedWizardStep.cs
- UniqueIdentifierService.cs
- ToolStripMenuItem.cs
- ToolStripDesigner.cs
- SafeMemoryMappedFileHandle.cs
- StoreItemCollection.cs
- Icon.cs
- HelpProvider.cs
- XmlnsCompatibleWithAttribute.cs
- NativeMethods.cs
- XmlDigitalSignatureProcessor.cs
- BinHexDecoder.cs
- SuppressIldasmAttribute.cs
- NetStream.cs
- OracleDateTime.cs
- SmtpAuthenticationManager.cs
- RequestBringIntoViewEventArgs.cs
- BatchParser.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SqlProcedureAttribute.cs
- ListItem.cs
- PartialList.cs
- TimeSpanMinutesConverter.cs
- ByteConverter.cs
- XslNumber.cs
- XmlDigitalSignatureProcessor.cs
- XmlFormatMapping.cs
- KnownBoxes.cs
- PopupControlService.cs
- XmlCharCheckingWriter.cs
- GridItemCollection.cs
- DelimitedListTraceListener.cs
- XslTransform.cs
- SettingsBindableAttribute.cs
- BmpBitmapEncoder.cs
- TableItemStyle.cs
- Environment.cs
- PresentationSource.cs
- WebPartEditorOkVerb.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- BitConverter.cs
- LayeredChannelListener.cs
- ChannelFactoryBase.cs
- NonVisualControlAttribute.cs
- SendingRequestEventArgs.cs
- UnmanagedMemoryStream.cs
- CodeThrowExceptionStatement.cs
- ConnectionPoolRegistry.cs
- Vector.cs
- SiteMapNodeItem.cs
- RegistryKey.cs
- HtmlInputHidden.cs
- ListViewInsertEventArgs.cs
- PipelineModuleStepContainer.cs
- IfAction.cs
- ResourcePermissionBase.cs
- FormatConvertedBitmap.cs
- ResourceAssociationSet.cs
- ReadOnlyCollectionBase.cs
- ContextBase.cs
- RightsManagementEncryptionTransform.cs
- PointKeyFrameCollection.cs
- Signature.cs
- IPAddressCollection.cs
- Visual.cs
- DecoderNLS.cs
- VariableAction.cs
- ProfileSettingsCollection.cs
- DoubleCollectionConverter.cs
- SafeFileMappingHandle.cs
- Literal.cs
- ReliableChannelBinder.cs
- MailHeaderInfo.cs
- SqlCachedBuffer.cs
- DomainUpDown.cs
- NumberSubstitution.cs
- TableParagraph.cs
- XmlDataLoader.cs
- DesignerFrame.cs
- BamlRecordWriter.cs
- SharedStatics.cs
- ControlTemplate.cs
- DispatchWrapper.cs
- CompilerLocalReference.cs
- ListViewAutomationPeer.cs
- WebServiceTypeData.cs
- SemanticBasicElement.cs
- Visual3D.cs
- SymbolEqualComparer.cs
- ProgressChangedEventArgs.cs