Skip to content

Operational runbook

Hosts covered

Host project Deployable Notes
SAIF.Services.WCF.UC4.Host app The only host project registering the UC4Service service class in this repository

Deployment

The build pipeline for this repository runs a web-build template twice — once with an internal-facing parameter set and once with an external-facing parameter set — a pattern carried over from the main host's two-variant deployment model. For SAIF.Services.WCF.UC4.Host, that two-pass shape does not produce two distinct deployable artifacts: there is no Web.ReleaseExternal.config transform, no ReleaseExternal build configuration, and the pipeline publishes a single artifact named app regardless of which pass produced it. Both passes are believed to build the same Web.config.

Aspect Internal-facing pass External-facing pass
Build configuration $(BuildConfigurationInternal) (value not resolved in analyzed pipeline YAML) Same template, external parameter set
Config transform applied None — no Web.ReleaseExternal.config exists None — same as internal pass
Published artifact name app app (same name — not distinguished)
Distinct deployable output No — evidence points to one deployable surface despite two pipeline passes* No — see internal-facing pass

Because both passes converge on one Web.config and one app artifact, this runbook treats the host as having one deployment surface rather than the "internal/external variant" split documented for the main host. This nuance should not be assumed to apply to any other host in this repository without re-verifying each one's config transforms and pipeline parameters.

IIS configuration

Aspect Value Source
Authentication Windows Authentication: enabled; Anonymous Authentication: enabled pipelines/build-vars.UC4.yml (IISWindowsAuth: true, IISAnonymousAuth: true), consumed by pipelines/release.UC4.yml — not present in Web.config, which has no authentication element
Activation ServiceRoute (Global.asax.cs) — no .svc file Global.asax.cs
ASP.NET compatibility Enabled Web.config
Metadata (WSDL) Published over HTTP GET (no TLS enforced at the binding level) Web.config

Environments

Setting Purpose Source
uc4.rules Per-environment job allow/deny document (JSON), read via the Environment API on every call UC4Service.cs
uc4coreapi.url Downstream UC4 service base address, resolved per call Uc4Client.cs
uc4coreapi.schedulejobroute Read into UC4Client but never referenced afterward — dead configuration read Uc4Client.cs
ApplicationHost appSettings value (Web.config: entdev01) used by framework environment-service host resolution* — not read by UC4Client, and not part of the outbound ClientInfo identity below Web.config*

No per-environment Web.config transforms exist for this host; environment variance is carried entirely by the Environment API settings above, not by file-based configuration.

Health verification

Check How Expected result
Service is reachable Request the WSDL over HTTP GET at the UC4 route address WSDL document returned
Service can reach downstream Invoke any operation with a known-allowed job name A non-empty UC4Result is returned
Rules document is readable Invoke any operation for an environment with rule entries No fault; result reflects the rule outcome

There is no dedicated health-check endpoint in this host; verification relies on invoking a real or synthetic operation.

Fault triage

Symptom Likely cause Where to look
SOAP fault with full exception detail on every call includeExceptionDetailInFaults is enabled — expected on this host Faults and error pipeline
SOAP fault mentioning jobName Null jobName passed to ExecuteJobWithJsonAndClientId, ExecuteJobWithValuesAndClientId, or ExecuteJobWithParametersAndClientId Business rules
SOAP fault on every call for one environment uc4.rules document missing or malformed for that environment Business rules
SOAP fault only on JSON-parameter operations Malformed jsonKeyValuePairs — parsed before the allow/deny gate Business rules
Silent empty result, no fault, job never runs Job blocked by uc4.rules; the explanatory message is discarded before it reaches the caller Business rules
Fault referencing the downstream client uc4coreapi.url unreachable, misconfigured, or the downstream service itself faulted Dependencies

Logs

Source Content Notes
LogService (via WcfEnvironmentService) method:{method},jobName:{jobName} at INFO for every invocation Business rules
[LogErrorBehavior]* Unhandled-exception logging at the service-behavior level External implementation, not in this repository — see Faults and error pipeline

Environment configuration

No connection strings or database configuration exist for this host — see Configuration and Dependencies for the complete settings catalog. Do not add a connection-string table to this runbook; none applies.

Error scenarios

Scenario Caller-visible outcome Reference
Blocked job Successful, empty UC4Result Business rules
Any unhandled exception SOAP fault with full stack trace and exception type Tech debt
Downstream service unavailable SOAP fault propagated unchanged; no retry attempted Dependencies

Monitoring and alerting

No dedicated metrics, health probes, or alerting configuration were found for this host in the analyzed source and pipeline files. Operational visibility depends entirely on the INFO-level invocation trace and whatever the external [LogErrorBehavior]* contributes.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • src/WCF/SAIF.Services.WCF.UC4.Host/Web.config
  • src/WCF/SAIF.Services.WCF.UC4.Host/Global.asax.cs
  • pipelines/build-vars.UC4.yml
  • pipelines/release.UC4.yml