A consumer obtains error logging by constructing a new LoggingServiceProxy per logged exception inside EnvironmentApi.SAIFExceptionLogger, part of SAIF.Services.Web.Proxies as documented at SAIF.Services.Web.Proxies overview; EnvironmentApi reaches that library through a binary HintPath reference rather than a project reference.
The app.config<client><endpoint name="clsWSLoggingSoap"> entry (Services/SAIF.Services.Web.Proxies/app.config:54, address webdev01) is present but is not used at runtime, because the wrapper supplies an explicit Binding and EndpointAddress to the generated constructor.
The call runs synchronously inside ExceptionLogger.Log, so a slow or unreachable logging host blocks the request thread for up to the default one-minute send timeout*.
// LoggingServiceProxy implements IDisposable, calling Dispose() -> Close(), but this// call site never invokes it:varloggingProxy=newLoggingServiceProxy(serviceUrl);loggingProxy.LogException(detail);
Swallowed by the bare catch { } in SAIFExceptionLogger.Log, which falls back to Trace.TraceError
SOAP fault returned
FaultException†
Same — swallowed and traced
Timeout exceeded
TimeoutException†
Same — swallowed and traced
Response larger than the message size limit
Not applicable — the response is empty
—
Empty or absent output message
Not applicable — WriteError is one-way
—
Catching every exception here appears intended to prevent a logging failure from crashing the request being logged*, but the logging-service failure itself is swallowed without any record, so an operator has no signal that error logging has stopped working.
// Log an unhandled Web API exceptionvarloggingProxy=newLoggingServiceProxy(ConfigurationManager.AppSettings["loggingServiceUrl"]);loggingProxy.LogException(newApplicationExceptionDetail{Application="EnvironmentApi",Environment="NetProd",ExceptionDate=DateTime.Now,Message=exception.GetErrorLogFormattedException()});
Scenario
Operations used
Notes
Record an unhandled Web API exception
WriteError
Called once per exception from SAIFExceptionLogger.Log
Note: Statements marked with † are derived from dependency library
documentation via the Legends CLI. Statements marked with * were inferred
from code structure or contextual evidence.