This host has no shared architecture across its six services beyond activation and the fault pipeline: each service class is constructed directly per request, resolves its own environment configuration and unit of work, and delegates to its own collaborators. There is no composition root and no cross-service abstraction layer.
The host runs in IIS. Global.asax instantiates a System.Web.HttpApplication subclass, whose Application_Start constructs a single ServiceHostFactory and registers all six ServiceRoutes against it. The registration detail is on Activation and hosting; this page covers what happens once a message is dispatched.
Aspect
Finding
Host
IIS (System.Web.HttpApplication) — no self-host, no Windows service host
Application class
Global (src/WCF/SAIF.Services.WCF.Host/Global.asax.cs)
Startup call chain
Application_Start → construct one ServiceHostFactory → six calls to RouteTable.Routes.Add(new ServiceRoute(routeName, factory, serviceType)), one per route
ASP.NET compatibility
AspNetCompatibilityRequirementsMode.Allowed on all six service classes
The six [ServiceContract] interfaces — IFileService, IPreferenceService, IWebContextService, IImagingService, IFaxService, ISecurityService — are external: they are not present anywhere in this repository. They appear only in using directives and one fully-qualified base-type reference, and are attributed to SAIF.Framework.Core (2.0.22181.2), arriving transitively rather than through a direct reference, <ProjectReference>, or packages.config entry. This is a normal, expected state for this host and is not a gap: the operation surface documented throughout this set is derived from each implementing class's public members and the route registrations, not from the (unavailable) contract source.
Service class
Declared contract
Contract location
Resolved how
SAIF.Services.WCF.Services.FileService
IFileService
External — SAIF.Services.WCF.Contracts
using directive only, assembly arrives transitively in SAIF.Framework.Core
SAIF.Services.WCF.Services.PreferenceService
IPreferenceService
External — SAIF.Services.WCF.Contracts
using directive only, assembly arrives transitively in SAIF.Framework.Core
SAIF.Services.WCF.Services.WebContextService
IWebContextService
External — SAIF.Services.WCF.Contracts
using directive only, assembly arrives transitively in SAIF.Framework.Core
SAIF.Services.WCF.Services.ImagingService
IImagingService
External — SAIF.Services.WCF.Contracts
using directive only, assembly arrives transitively in SAIF.Framework.Core
SAIF.Services.WCF.Services.FaxService
IFaxService
External — SAIF.Services.WCF.Contracts
using directive only, assembly arrives transitively in SAIF.Framework.Core
using directive only, assembly arrives transitively in SAIF.Framework.Core
Aspect
Finding
Contract assembly
SAIF.Services.WCF.Contracts
Present in repository
No — external
Arrives via
SAIF.Framework.Core 2.0.22181.2 (transitive)
Operation surface derived from
Implementing class public members + route registrations
Consequence for this document set
Operation names, parameters, and return types are read from the six implementing classes; any [OperationContract] name override, [FaultContract] declaration, or IsOneWay setting on the external interfaces could not be inspected and is not assumed
No dependency-injection container exists in this host. A repository-wide search for ContainerBuilder, RegisterType, RegisterAssemblyTypes, RegisterModule, builder.Build(, : Autofac.Module, and the bare token Autofac returned zero matches in host source. Autofac 3.5.2 is referenced in WCF.csproj/packages.config but is unused by this host's code — either an unused reference or a run-time requirement of the SAIF.Framework.Core closure.
Field
Value
Container present
No — collaborators constructed directly in each service's parameterless constructor
Project
—
File
—
Entry method
—
Invoked from
—
Instance provider
WCF default (parameterless constructor)
Additional registration files
None
Every collaborator — WcfEnvironmentService, OracleUnitOfWorkFactory, SqlServerUnitOfWorkFactory, Repository<T>, UserFactory, ContactFactory, ADService, FileService, FaxServiceProxy, ErrorLogErrorHandler, WindowsEnvironmentService, LogService — is constructed with new against a concrete class inside the consuming type's parameterless constructor or a per-call method; see Dependencies for the full construction table.
SecurityService.ldap_external — a private static field mutated from an instance constructor on every request and read by the static method IsAuthorizedExternal; see Tech debt. AuthorizationCacheService's HttpContext.Current.Cache-backed cache is also process-wide shared state, by design.
All six services depend on aspNetCompatibilityEnabled="true" because SecurityService.LogRequestDetails and AuthorizationCacheService.IsAuthorized both read HttpContext.Current, which only exists under ASP.NET compatibility.
FaxService and ImagingService both construct a FileService directly (new FileService()), sharing its unauthorized, unconstrained file-write path between the routed surface and internal callers.