private Exception GetSpecificException(Exception exception) { SoapException ex = exception as SoapException; if (ex != null && ex.Code != null && !string.IsNullOrEmpty(ex.Code.Name)) { ResponseCodeType responseCodeType; bool flag = Enum.TryParse <ResponseCodeType>(ex.Code.Name, out responseCodeType); if (flag) { if (this.IsTraceEnabled(TraceType.ErrorTrace)) { this.Tracer.TraceError <XmlQualifiedName, string>(0L, "EwsAuditClient EWS response Code: {0} Detail: {1} ", ex.Code, ex.Detail.InnerText); } ResponseCodeType responseCodeType2 = responseCodeType; if (responseCodeType2 == ResponseCodeType.ErrorAccessDenied || responseCodeType2 == ResponseCodeType.ErrorTokenSerializationDenied) { return(new AuditLogAccessDeniedException(ex)); } } return(new AuditLogServiceException(string.Empty, ex.Code.Name, ex.Message, exception)); } if (exception is AuditLogException) { return(exception); } return(new AuditLogException(Strings.FailedToAccessAuditLogWithInnerException, exception)); }
public static bool IsRebindableError(ResponseCodeType code) { switch (code) { case ResponseCodeType.ErrorMailboxMoveInProgress: case ResponseCodeType.ErrorMailboxStoreUnavailable: break; default: switch (code) { case ResponseCodeType.ErrorProxyServiceDiscoveryFailed: case ResponseCodeType.ErrorProxyTokenExpired: break; default: if (code != ResponseCodeType.ErrorMailboxFailover) { return(false); } break; } break; } return(true); }
public void MSOXWSCORE_S07_TC06_CreateTaskItemFailed() { #region Step 1: Create the task item with invalid item class. TaskType[] items = new TaskType[] { new TaskType() { Subject = Common.GenerateResourceName( this.Site, TestSuiteHelper.SubjectForCreateItem), // Set an invalid ItemClass to post item. ItemClass = TestSuiteHelper.InvalidItemClass } }; CreateItemResponseType createItemResponse = this.CallCreateItemOperation(DistinguishedFolderIdNameType.tasks, items); #endregion // Get ResponseCode from CreateItem operation response. ResponseCodeType responseCode = createItemResponse.ResponseMessages.Items[0].ResponseCode; // Verify MS-OXWSCDATA_R619. this.VerifyErrorObjectTypeChanged(responseCode); }
public override void EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, IService service, IAsyncResult asyncResult) { MailTipsApplication.GetMailTipsTracer.TraceFunction((long)this.traceId, "Entering MailTipsApplication.EndProxyWebRequest"); GetMailTipsResponseMessageType getMailTipsResponseMessageType = service.EndGetMailTips(asyncResult); int hashCode = proxyWebRequest.GetHashCode(); if (getMailTipsResponseMessageType == null) { Application.ProxyWebRequestTracer.TraceError((long)this.traceId, "{0}: Proxy web request returned NULL GetMailTipsResponseMessageType", new object[] { TraceContext.Get() }); queryList.SetResultInAllQueries(new MailTipsQueryResult(new NoEwsResponseException())); base.HandleNullResponse(proxyWebRequest); return; } ResponseCodeType responseCode = getMailTipsResponseMessageType.ResponseCode; if (responseCode != ResponseCodeType.NoError) { Application.ProxyWebRequestTracer.TraceError <object, string>((long)hashCode, "{0}: Proxy web request returned error code {1}", TraceContext.Get(), responseCode.ToString()); queryList.SetResultInAllQueries(new MailTipsQueryResult(new ErrorEwsResponseException(responseCode))); return; } this.ProcessResponseMessages(hashCode, queryList, getMailTipsResponseMessageType); }
public void MSOXWSCORE_S03_TC07_CreateDistributionListsItemFailed() { Site.Assume.IsTrue(Common.IsRequirementEnabled(19241, this.Site), "Exchange 2007 doesn't support MS-OXWSDLIST"); #region Step 1: Create the distribution list type item with invalid item class. DistributionListType[] createdItems = new DistributionListType[] { new DistributionListType() { Subject = Common.GenerateResourceName( this.Site, TestSuiteHelper.SubjectForCreateItem), // Set an invalid ItemClass to contact item. ItemClass = TestSuiteHelper.InvalidItemClass } }; CreateItemResponseType createItemResponse = this.CallCreateItemOperation(DistinguishedFolderIdNameType.contacts, createdItems); #endregion // Get ResponseCode from CreateItem operation response. ResponseCodeType responseCode = createItemResponse.ResponseMessages.Items[0].ResponseCode; // Verify MS-OXWSCDATA_R619. this.VerifyErrorObjectTypeChanged(responseCode); }
private async void LogRequest(ServiceLog requestLog, string clientId, ResponseCodeType responseCode, Stopwatch requestWatch, bool logRolling) { try { requestLog.ResponseCode = responseCode; requestWatch.Stop(); requestLog.TimeTakenMs = requestWatch.ElapsedMilliseconds; await mongoRepository.Add(requestLog, clientId, requestLog.GetType().Name, logRolling); } catch (Exception exception) { logger.LogError("Error logging service request: " + exception.Message); } }
private bool IsReponseErrorRetryable(ResponseCodeType errorCode) { if (errorCode != ResponseCodeType.ErrorConnectionFailed) { switch (errorCode) { case ResponseCodeType.ErrorMailboxMoveInProgress: case ResponseCodeType.ErrorMailboxStoreUnavailable: break; default: if (errorCode != ResponseCodeType.ErrorTimeoutExpired) { return(false); } break; } } return(true); }
public CoapResponse(ushort messageId, ResponseMessageType type, ResponseCodeType code, byte[] token, MediaType?contentType, byte[] payload) { this.MessageId = messageId; this.ResponseType = type; this.ResponseCode = code; this.Code = (CodeType)code; if (token != null) { this.Token = token; } if (contentType.HasValue) { this.ContentType = contentType; } this.Payload = payload; this._options = new CoapOptionCollection(); }
private TrackingError GetTrackingErrorFromWebResponseError(ResponseCodeType responseCode, string target, string messageText) { if (responseCode == ResponseCodeType.NoError) { throw new ArgumentException("ResponseCodeType.NoError cannot be mapped because it is not an error."); } TraceWrapper.SearchLibraryTracer.TraceDebug <string, string>(this.GetHashCode(), "Mapping error code {0} from web response. MessageText: {1}", Names <ResponseCodeType> .Map[(int)responseCode], messageText); if (responseCode != ResponseCodeType.ErrorAccessDenied) { TraceWrapper.SearchLibraryTracer.TraceError <string, string>(this.GetHashCode(), "Mapping error code {0} from web response to generic failure. MessageText: {1}", Names <ResponseCodeType> .Map[(int)responseCode], messageText); return(new TrackingError(ErrorCode.UnexpectedErrorTransient, string.Empty, string.Format("WebException connecting to {0}", target), messageText)); } if (this.trackingAuthority.TrackingAuthorityKind == TrackingAuthorityKind.RemoteTrustedOrg) { return(new TrackingError(ErrorCode.CrossPremiseMisconfiguration, target, string.Empty, messageText)); } if (this.trackingAuthority.TrackingAuthorityKind == TrackingAuthorityKind.RemoteForest) { return(new TrackingError(ErrorCode.CrossForestMisconfiguration, target, string.Empty, messageText)); } return(new TrackingError(ErrorCode.UnexpectedErrorTransient, target, string.Empty, messageText)); }
/// <summary> /// Grab the response code from within a soap exception (Listing 18-16) /// </summary> /// <param name="soapException">Soap Exception to examine</param> /// <returns>True if parse was successful</returns> /// public static bool TryGetResponseCodeFromSoapException( SoapException soapException, out ResponseCodeType responseCode) { responseCode = ResponseCodeType.NoError; XmlElement detailElement = (XmlElement)soapException.Detail; if (detailElement == null) { return false; } XmlElement responseCodeElement = detailElement[ "ResponseCode", "http://schemas.microsoft.com/exchange/services/2006/errors"]; if (responseCodeElement == null) { return false; } responseCode = (ResponseCodeType)Enum.Parse( typeof(ResponseCodeType), responseCodeElement.InnerText); return true; }
public TransportServiceDescriptionType() { this.transportationServiceField = new ObservableCollection<TransportationServiceType>(); this.validityPeriodField = new PeriodType(); this.serviceChargePaymentTermsField = new PaymentTermsType(); this.transportServiceProviderPartyField = new PartyType(); this.transportServiceDescriptionRequestDocumentReferenceField = new DocumentReferenceType(); this.receiverPartyField = new PartyType(); this.senderPartyField = new PartyType(); this.signatureField = new ObservableCollection<SignatureType>(); this.responseCodeField = new ResponseCodeType(); this.serviceNameField = new ServiceNameType(); this.noteField = new ObservableCollection<NoteType>(); this.issueTimeField = new IssueTimeType(); this.issueDateField = new IssueDateType(); this.uUIDField = new UUIDType(); this.copyIndicatorField = new CopyIndicatorType(); this.idField = new IDType(); this.profileExecutionIDField = new ProfileExecutionIDType(); this.profileIDField = new ProfileIDType(); this.customizationIDField = new CustomizationIDType(); this.uBLVersionIDField = new UBLVersionIDType(); this.uBLExtensionsField = new ObservableCollection<UBLExtensionType>(); }
public TransportServiceDescriptionType() { this.transportationServiceField = new ObservableCollection <TransportationServiceType>(); this.validityPeriodField = new PeriodType(); this.serviceChargePaymentTermsField = new PaymentTermsType(); this.transportServiceProviderPartyField = new PartyType(); this.transportServiceDescriptionRequestDocumentReferenceField = new DocumentReferenceType(); this.receiverPartyField = new PartyType(); this.senderPartyField = new PartyType(); this.signatureField = new ObservableCollection <SignatureType>(); this.responseCodeField = new ResponseCodeType(); this.serviceNameField = new ServiceNameType(); this.noteField = new ObservableCollection <NoteType>(); this.issueTimeField = new IssueTimeType(); this.issueDateField = new IssueDateType(); this.uUIDField = new UUIDType(); this.copyIndicatorField = new CopyIndicatorType(); this.idField = new IDType(); this.profileExecutionIDField = new ProfileExecutionIDType(); this.profileIDField = new ProfileIDType(); this.customizationIDField = new CustomizationIDType(); this.uBLVersionIDField = new UBLVersionIDType(); this.uBLExtensionsField = new ObservableCollection <UBLExtensionType>(); }
// Token: 0x060018AB RID: 6315 protected abstract TResponse CreateErrorResponse(Exception exception, ResponseCodeType codeType);
public CoapResponse(ushort messageId, ResponseMessageType type, ResponseCodeType code, byte[] token) : this(messageId, type, code, token, null, null) { }
public CoapResponse(ushort messageId, ResponseMessageType type, ResponseCodeType code) : this(messageId, type, code, null, null, null) { }
protected override FindItemJsonResponse CreateErrorResponse(Exception exception, ResponseCodeType codeType) { base.TraceError("FindItemAnonymous:CreateErrorResponse. Exception:{0}", new object[] { exception }); FindItemResponse findItemResponse = new FindItemResponse(); ServiceError error = new ServiceError(base.GetExceptionMessage(exception), codeType, 0, ExchangeVersion.Latest); findItemResponse.AddResponse(new ResponseMessage(ServiceResultCode.Error, error)); return(new FindItemJsonResponse { Body = findItemResponse }); }
public static bool IsTransientError(ResponseCodeType code) { if (code <= ResponseCodeType.ErrorInternalServerTransientError) { if (code <= ResponseCodeType.ErrorDeleteItemsFailed) { switch (code) { case ResponseCodeType.ErrorADOperation: case ResponseCodeType.ErrorADUnavailable: break; case ResponseCodeType.ErrorADSessionFilter: return(false); default: if (code != ResponseCodeType.ErrorBatchProcessingStopped && code != ResponseCodeType.ErrorDeleteItemsFailed) { return(false); } break; } } else if (code != ResponseCodeType.ErrorExceededConnectionCount && code != ResponseCodeType.ErrorFolderSavePropertyError) { switch (code) { case ResponseCodeType.ErrorInsufficientResources: case ResponseCodeType.ErrorInternalServerTransientError: break; case ResponseCodeType.ErrorInternalServerError: return(false); default: return(false); } } } else if (code <= ResponseCodeType.ErrorNotEnoughMemory) { if (code != ResponseCodeType.ErrorItemSavePropertyError) { switch (code) { case ResponseCodeType.ErrorMailboxMoveInProgress: case ResponseCodeType.ErrorMailboxStoreUnavailable: break; default: if (code != ResponseCodeType.ErrorNotEnoughMemory) { return(false); } break; } } } else if (code <= ResponseCodeType.ErrorTimeoutExpired) { switch (code) { case ResponseCodeType.ErrorServerBusy: case ResponseCodeType.ErrorStaleObject: break; case ResponseCodeType.ErrorServiceDiscoveryFailed: return(false); default: if (code != ResponseCodeType.ErrorTimeoutExpired) { return(false); } break; } } else if (code != ResponseCodeType.ErrorTooManyObjectsOpened && code != ResponseCodeType.ErrorMessageTrackingTransientError) { return(false); } return(true); }
private ItemType[] InternalFindItems(FindItemType findItemType, ItemResponseShapeType itemShape) { if (itemShape == null) { itemShape = EwsAuditClient.DefaultItemShape; } List <ItemType> items = null; IEnumerable <BaseItemIdType> enumerable = this.InternalFindItemIds(findItemType); using (IEnumerator <BaseItemIdType> enumerator = enumerable.GetEnumerator()) { List <BaseItemIdType> list = new List <BaseItemIdType>(64); bool flag; do { flag = enumerator.MoveNext(); if (flag) { list.Add(enumerator.Current); } if (list.Count == 64 || (list.Count > 0 && !flag)) { GetItemType getItemType = new GetItemType { ItemShape = itemShape, ItemIds = list.ToArray() }; this.CallEwsWithRetries((LID)41148U, () => this.binding.GetItem(getItemType), delegate(ResponseMessageType responseMessage, int messageIndex) { ItemInfoResponseMessageType itemInfoResponseMessageType = responseMessage as ItemInfoResponseMessageType; if (itemInfoResponseMessageType != null && itemInfoResponseMessageType.ResponseClass == ResponseClassType.Success && itemInfoResponseMessageType.Items != null) { ItemType[] items = itemInfoResponseMessageType.Items.Items; foreach (ItemType item in items) { if (items == null) { items = new List <ItemType>(); } items.Add(item); } return(false); } return(false); }, delegate(ResponseMessageType responseMessage, int messageIndex) { if (responseMessage != null && responseMessage.ResponseClass == ResponseClassType.Error) { ResponseCodeType responseCode = responseMessage.ResponseCode; if (responseCode == ResponseCodeType.ErrorItemNotFound || responseCode == ResponseCodeType.ErrorMessageSizeExceeded) { return(true); } } return(false); }); list.Clear(); } }while (flag); } if (items != null && items.Count > 0) { return(items.ToArray()); } return(Array <ItemType> .Empty); }
public ResponseCode(ResponseCodeType type, string argument = null) { this.Type = type; this.Argument = argument; }
public ErrorEwsResponseException(ResponseCodeType responseCodeType) : base(Strings.descErrorEwsResponse((int)responseCodeType)) { this.ResponseCodeType = responseCodeType; }
private static string GetMessageByCode(ResponseCodeType code) => code switch {
// Token: 0x06000756 RID: 1878 RVA: 0x0001CC98 File Offset: 0x0001AE98 private bool Write(AuditRecord record) { Exception exception = null; bool retry = false; try { GrayException.MapAndReportGrayExceptions(delegate() { try { record.Visit(this.visitor); exception = null; retry = false; } catch (ServerInMMException exception2) { exception = exception2; retry = true; } catch (TenantAccessBlockedException exception3) { exception = exception3; retry = false; } catch (DataSourceOperationException exception4) { exception = exception4; retry = true; } catch (ADTransientException exception5) { exception = exception5; retry = true; } catch (AuditException exception6) { exception = exception6; retry = false; } catch (AuditLogServiceException ex) { exception = ex; retry = false; ResponseCodeType responseCodeType; Enum.TryParse <ResponseCodeType>(ex.Code, true, out responseCodeType); ResponseCodeType responseCodeType2 = responseCodeType; if (responseCodeType2 <= ResponseCodeType.ErrorNotEnoughMemory) { if (responseCodeType2 <= ResponseCodeType.ErrorClientDisconnected) { if (responseCodeType2 != ResponseCodeType.ErrorADUnavailable && responseCodeType2 != ResponseCodeType.ErrorBatchProcessingStopped && responseCodeType2 != ResponseCodeType.ErrorClientDisconnected) { goto IL_185; } } else if (responseCodeType2 <= ResponseCodeType.ErrorInternalServerTransientError) { if (responseCodeType2 != ResponseCodeType.ErrorConnectionFailed) { switch (responseCodeType2) { case ResponseCodeType.ErrorInsufficientResources: case ResponseCodeType.ErrorInternalServerTransientError: break; case ResponseCodeType.ErrorInternalServerError: goto IL_185; default: goto IL_185; } } } else { switch (responseCodeType2) { case ResponseCodeType.ErrorMailboxMoveInProgress: case ResponseCodeType.ErrorMailboxStoreUnavailable: break; default: if (responseCodeType2 != ResponseCodeType.ErrorNotEnoughMemory) { goto IL_185; } break; } } } else if (responseCodeType2 <= ResponseCodeType.ErrorTimeoutExpired) { if (responseCodeType2 != ResponseCodeType.ErrorRequestAborted && responseCodeType2 != ResponseCodeType.ErrorServerBusy && responseCodeType2 != ResponseCodeType.ErrorTimeoutExpired) { goto IL_185; } } else if (responseCodeType2 <= ResponseCodeType.ErrorMailboxFailover) { if (responseCodeType2 != ResponseCodeType.ErrorTooManyObjectsOpened && responseCodeType2 != ResponseCodeType.ErrorMailboxFailover) { goto IL_185; } } else if (responseCodeType2 != ResponseCodeType.ErrorUMServerUnavailable && responseCodeType2 != ResponseCodeType.ErrorLocationServicesRequestTimedOut) { goto IL_185; } retry = true; IL_185:; } catch (AuditLogException ex2) { exception = ex2; WebException ex3 = ex2.InnerException as WebException; if (ex3 != null) { WebExceptionStatus status = ex3.Status; if (status == WebExceptionStatus.Timeout) { retry = true; } else { retry = false; } } else { retry = false; } } if (exception != null && this.Tracer.IsTraceEnabled(TraceType.DebugTrace)) { this.Tracer.TraceDebug((long)this.GetHashCode(), "AuditDatabaseWriter.Write. Failed while processing audit record: Id={0}, OrgId={1}, Operation={2}, Type={3}. Error: {4}", new object[] { record.Id, record.OrganizationId, record.Operation, record.RecordType, exception }); } }); } catch (GrayException exception) { GrayException exception7; exception = exception7; retry = false; if (exception != null && this.Tracer.IsTraceEnabled(TraceType.ErrorTrace)) { this.Tracer.TraceError((long)this.GetHashCode(), "AuditDatabaseWriter.Write. Failed while processing audit record: Id={0}, OrgId={1}, Operation={2}, Type={3}. Error: {4}", new object[] { record.Id, record.OrganizationId, record.Operation, record.RecordType, exception }); } } finally { if (exception != null) { AuditHealthInfo.Instance.AddException(exception); AuditDatabaseWriterHealth instance = Singleton <AuditDatabaseWriterHealth> .Instance; instance.Add(new RecordProcessingResult(record, exception, retry)); if (!retry) { instance.FailedBatchCount++; } } } return(!retry); }