4

우리는 Coldfusion 9.0.1을 실행 중이며 cfexchangemail을 사용하여 수년간 전자 메일을 성공적으로 검색했습니다.cfexchangemail의 get 작업이 반환되지 않는 이유는 무엇입니까?

지난 며칠 동안 일부 사용자의 전화는 절대로 반환되지 않습니다. 이로 인해 ColdFusion은 활성 요청을 스태킹하여 결국 모든 요청에 ​​대해 응답하지 않게됩니다.

다른 사용자의 경우 호출이 성공적으로 처리됩니다.

<cfexchangemail action="get" folder="Inbox " name="weeksMail" connection="testconn1"> 
    <cfexchangefilter name="maxRows" value=4> 
</cfexchangemail> 

사람이 비슷한 문제가 있었 :

통화입니까?

는 UPDATE :

나는 생산에 벌금을 작동하던 테스트 계정으로 일부 수동 쿼리를 실행했습니다. maxRows 필터를 제거하면 매우 오래 실행중인 요청이 반환됩니다 (아직 반환되지 않았습니다). maxRows를 18로 설정하면 요청이 완료되지만 약 10 초 후에 만 ​​요청이 허용됩니다. maxRows를 19로 설정하면 응답하지 않는 모드가됩니다.

메시지 크기 또는 손상된 데이터를 나타내는 것 같습니다.

UPDATE 2 :

이 이메일 문제의 크기로 나타납니다. Inbox에 이메일이 하나 뿐인 경우 크기가 약 20kb 인 경우 전화가 절대로 나오지 않습니다. 19kb 이메일을 제대로 반환 할 수 있습니다.

이제 문제는 다음과 같습니다.이 모든 일이 계속되어 왔으며 현재이 이메일을 많이 보았습니까? 아니면 변경된 것이 있습니까? 내가 아는 한 CF 설치시에는 아무 것도 변경되지 않았습니다.

UPDATE 3

는 ColdFusion에서 10 이제 테스트되었습니다. 우리는 같은 결과를 얻습니다. 나는 그림에서 ColdFusion에서을 직선 WEBDAV 히트와 함께 문제를 트리거 할 수있었습니다 4

UPDATE.

+0

는 최근 2010 Exchange 서버를 업그레이드 한 microsoft.exchange.webservices의 객체를 생성하는 것입니다? – Jarede

+0

요청 제한 시간을 설정 했습니까? –

+0

Cf 서버와 Exchange 서버간에 네트워킹 장비가 변경 되었습니까? –

답변

4

내 경험에 따라 cfexchangemail 태그 (CF10/CF11)는 항상 느리고 가끔 요청 시간 초과 오류가 발생합니다. Java EWS Managed API을 사용하여 결국 cfexchangemail 태그보다 빠릅니다. 그러나 API로 메소드 반환을 사용하는 방법을 배우기 만하면됩니다. 여기

는 예를 들어 어떻게

<cfscript> 

    service = createObject("Java", "microsoft.exchange.webservices.data.ExchangeService"); 
    service.init(); 

    version = createObject("Java", "microsoft.exchange.webservices.data.ExchangeVersion"); 
    service.init(version.Exchange2010); 

    credentials = createObject("Java", "microsoft.exchange.webservices.data.WebCredentials"); 

    credentials.init(yourusername, yourpassword); 
    service.setCredentials(credentials); 

    uri = createObject("Java", "java.net.URI"); 
    uri.init("outlook webservices url"); 
    service.setUrl(uri); 
    WellKnownFolderName=createObject("Java","microsoft.exchange.webservices.data.WellKnownFolderName"); 
    result = service.FindItems(service.WellKnownFolderName.Inbox, CreateObject("java", "microsoft.exchange.webservices.data.ItemView").init(100)); 

    for(item in result.getItems(){ 
     // ..loop through each field and store their value 
     // in query object or something... 
    } 

</cfscript> 
+0

감사합니다. 우리는 EWS Managed API도 사용하게되었습니다. –

관련 문제