|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.ComIntegration
{
using System;
using System.ServiceModel.Channels;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Globalization;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using System.ComponentModel;
static class Error
{
const string FaultNamespace = System.ServiceModel.FaultException.Namespace;
public static Exception ActivationAccessDenied()
{
return CreateFault("ComActivationAccessDenied",
SR.GetString(SR.ComActivationAccessDenied));
}
public static Exception QFENotPresent()
{
return CreateFault("ServiceHostStartingServiceErrorNoQFE",
SR.GetString(SR.ComPlusServiceHostStartingServiceErrorNoQFE));
}
public static Exception DirectoryNotFound(string directory)
{
return CreateFault("DirectoryNotFound",
SR.GetString(SR.TempDirectoryNotFound, directory));
}
public static Exception CannotAccessDirectory(string directory)
{
return CreateFault("CannotAccessDirectory",
SR.GetString(SR.CannotAccessDirectory, directory));
}
public static Exception ManifestCreationFailed(string file, string error)
{
return CreateFault("ManifestCreationFailed",
SR.GetString(SR.ComIntegrationManifestCreationFailed, file, error));
}
public static Exception ActivationFailure()
{
return CreateFault("ComActivationFailure",
SR.GetString(SR.ComActivationFailure));
}
public static Exception UnexpectedThreadingModel()
{
return CreateFault("UnexpectedThreadingModel",
SR.GetString(SR.UnexpectedThreadingModel));
}
public static Exception DllHostInitializerFoundNoServices()
{
return CreateFault("DllHostInitializerFoundNoServices",
SR.GetString(SR.ComDllHostInitializerFoundNoServices));
}
public static Exception ServiceMonikerSupportLoadFailed(string dllname)
{
return CreateFault("UnableToLoadServiceMonikerSupportDll",
SR.GetString(SR.UnableToLoadDll, dllname));
}
public static Exception CallAccessDenied()
{
return CreateFault("ComAccessDenied",
SR.GetString(SR.ComMessageAccessDenied));
}
public static Exception RequiresWindowsSecurity()
{
return CreateFault("ComWindowsIdentityRequired",
SR.GetString(SR.ComRequiresWindowsSecurity));
}
public static Exception NoAsyncOperationsAllowed()
{
return CreateFault("NoAsyncOperationsAllowed",
SR.GetString(SR.ComNoAsyncOperationsAllowed));
}
public static Exception DuplicateOperation()
{
return CreateFault("DuplicateOperation",
SR.GetString(SR.ComDuplicateOperation));
}
public static Exception InconsistentSessionRequirements()
{
return CreateFault("ComInconsistentSessionRequirements",
SR.GetString(SR.ComInconsistentSessionRequirements));
}
public static Exception TransactionMismatch()
{
// NOTE: The fault created here is identical to the one
// created by the TransactionBehavior when
// concurrent transactions are not supported.
//
return CreateFault("Transactions",
SR.GetString(SR.SFxTransactionsNotSupported));
}
public static Exception ListenerInitFailed(string message)
{
return new ComPlusListenerInitializationException(message);
}
public static Exception ListenerInitFailed(string message,
Exception inner)
{
return new ComPlusListenerInitializationException(message, inner);
}
static Exception CreateFault(string code, string reason)
{
FaultCode codeObj = FaultCode.CreateSenderFaultCode(code, FaultNamespace);
FaultReason reasonObj = new FaultReason(reason, CultureInfo.CurrentCulture);
return new FaultException(reasonObj, codeObj);
}
}
[Serializable]
internal class ComPlusListenerInitializationException : Exception
{
public ComPlusListenerInitializationException()
: base()
{
}
public ComPlusListenerInitializationException(string message)
: base(message)
{
}
public ComPlusListenerInitializationException(string message,
Exception inner)
: base(message, inner)
{
}
protected ComPlusListenerInitializationException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
[Serializable]
internal class ComPlusProxyProviderException : Exception
{
public ComPlusProxyProviderException(string message, Exception inner)
: base(message, inner)
{
}
}
}
|