Как получить ошибку из БД для службы wcf ria? - PullRequest
1 голос
/ 15 марта 2012

Я использую EF + WCF ria service для приложения SL.Вот моя ситуация:

Обновление таблицы сопоставлено с SP в EF.В этом SP я использую RAISERROR ('My Test Message', 11,1), чтобы создать сообщение об ошибке для некоторого исключения.

Затем запишите эту ошибку, переопределив SaveChanges:

  public override int SaveChanges(System.Data.Objects.SaveOptions options)
        {            
            try
            {
                return base.SaveChanges(options);
            }
            catch (Exception ex)
            {
                 throw ex;
            }
        }

На клиенте, исключение процесса:

Context.SubmitChanges(s =>
{
   try
     {
       if (s.HasError)
         {
            //......
           errs = s.Error.Message;
         }
      //....
      }
      catch (Exception ex)
      {
         //....
         errs = s.Error.Message;
      }                   
}, null);

при локальном запуске приложения, все в порядке, яможет получить сообщение об ошибке, сгенерированное SP, например:
Ошибка отправки операции: мое тестовое сообщение

, но при развертывании приложения на другом компьютере сообщение об ошибке не отображается, сообщение об ошибке напоминает:
Операция отправки не удалась: исключение типа 'System.ServiceModel.DomainServices.Client.DomainOperationException' выдано.

Похоже, что-то связано с веб-сервером (IIS).Как решить эту проблему?

1 Ответ

1 голос
/ 14 ноября 2012

Проверьте, какие ваши CustomErrors установлены в вашем web.config.Кроме того, если вы переопределяете OnError в службе домена, вы можете установить точку останова, чтобы увидеть, что находится «внутри» исключения домена, и добавить код ошибки, который клиент может интерпретировать (я нашел это полезным).

...