Ria Service And OOB: проверьте, доступен ли сервис, MEF не импортирует мои взгляды - PullRequest
0 голосов
/ 21 марта 2012

Привет! В настоящее время я пытаюсь проверить, доступна ли служба Ria для нашего приложения OOB.

 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 в приложении, мне лень импортировать мои представления, к сожалению, когда служба Ria недоступна, MEF не импортирует мои представления :( Я вызываю CompositionInitializer.SatisfyImports (это).

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

1 Ответ

0 голосов
/ 22 марта 2012

Вы пытались проверить, произошла ли ошибка в обратном вызове OnServiceAvailable:

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

Вероятно, вам следует переименовать OnServiceAvailable что-то вроде OnOperationComplete.

Вы должны обработать ошибки в обратном вызове- включая ошибку «ServiceNotAvailable».Помните, что это асинхронный вызов - клиент не ждет ответа сервера, прежде чем он продолжится.

...