public virtual void CompletePublish(IEndpointIncomingRequest request)
{
AsyncPublishOperation operation = (AsyncPublishOperation)request.Calldata;
OperationContext context = operation.Context;
try
{
if (ServerInternal.SubscriptionManager.CompletePublish(context, operation))
{
operation.Response.ResponseHeader = CreateResponse(request.Request.RequestHeader, context.StringTable);
request.OperationCompleted(operation.Response, null);
OnRequestComplete(context);
}
}
catch (ServiceResultException e)
{
OnRequestComplete(context);
lock (ServerInternal.DiagnosticsLock)
{
ServerInternal.ServerDiagnostics.RejectedRequestsCount++;
if (IsSecurityError(e.StatusCode))
{
ServerInternal.ServerDiagnostics.SecurityRejectedRequestsCount++;
}
}
throw TranslateException(context, e);
}
}