2012-03-21 2 views
0

안녕하세요. 현재 Ria 서비스가 OOB 애플리케이션에서 사용 가능한지 확인하려고합니다.Ria 서비스 및 OOB : 서비스에 연결할 수 있는지, MEF에서 내 의견을 가져 오지 않는지 확인하십시오.

public static void IsServiceReachable(Action onServiceAvailable, Action onServiceUnavailable) 
     { 
      try { 
       DomainContext context = new DomainContext(); 

       InvokeOperation<bool> invokeOperation = context.IsAlive(); 
       invokeOperation.Completed += (s, arg) => onServiceAvailable(); 
      } 
      catch (Exception) { 
       onServiceUnavailable(); 
      } 
     } 

예외가 발생하면 내 앱이 중지되고 이제는 흰색 화면입니다. 내가 제대로하고 있니? 리아 서비스에 도달 할 수없는 경우 나 또한 응용 프로그램에서 MEF를 사용하고

, 내 견해를 가져 게으른 오전, 슬프게도, MEF 내 견해를 가져 나던 :(내가 CompositionInitializer.SatisfyImports (이)를 호출하고있다.

[ImportMany(AllowRecomposition = true)] 
public Lazy<BaseUserControl, IViewMetadata>[] Views { get; set; } 
+0

applicationerror_unhandeld 메서드의 app.xaml.cs에 중단 점을 넣으면 –

+0

에 대한 자세한 설명을 얻을 수 있습니다. 감사합니다. 슬프게도 이미 체크 했으므로 아무 것도 던지지 않습니다. 지금 현재 내가 조사하고있는 것은 MEF가 내 견해를 가져 오지 않는 이유입니다. ( – arcbound08

답변

0

오류가 OnServiceAvailable 콜백에서 발생했습니다 경우 검사를 시도 유무 :. 당신은 아마 OnOperationComplete 같은 OnServiceAvailable 뭔가 이름을 변경해야

void OnServiceAvailable(object sender, EventArgs e) 
{ 
    InvokeOperation op = sender as InvokeOperation; 
    if (op.HasError) { 
     Exception exception = op.Error; 
     ... 
    } else { 
     ... 
    } 
} 

,

'ServiceNotAvailable'오류를 포함하여 콜백의 오류를 처리해야합니다. 이것은 비동기식 호출이라는 것을 기억하십시오. 클라이언트는 계속하기 전에 서버 응답을 기다리지 않습니다.

+0

나는 그것이 작동 할 수 있다고 생각하지 않습니다. 원인은 OnServiceAvailable이 호출 할 수 없기 때문입니다. 리어에 연결할 수 있는지 확인하고 있습니다. – arcbound08

+0

클라이언트가 계속 보낼 것입니다. HTTP 요청입니다. 'Completed'콜백 함수가 호출되어 예외 및 오류 코드를 사용할 수 있습니다 - 아마도 '잘못된 게이트웨이'예외 (http 코드 502). – GarethOwen

+0

감사합니다. 올바르게 시도했습니다. MEF가 여전히 내보기를 가져 오지 않습니다. 적어도 더 이상 걸려 있지 않습니다 :) 호출 작업에서 가져온 메시지는 다음과 같습니다. "IsAlive '작업을 호출하지 못했습니다. 원격 서버에서 오류를 반환했습니다 : NotFound." – arcbound08