Ошибка при работе в Silverlight при попытке достичь конечной точки служб RIA

#silverlight-4.0 #wcf-ria-services

#silverlight-4.0 #wcf-ria-services

Вопрос:

Я создал конечную точку служб Ria. Silverlight передает данные в службы RIA. Затем конечная точка записывает / обновляет эти данные в файловую систему. Мы сталкиваемся со следующим исключением:

Система.ServiceModel.DomainServices.Клиент.Исключение DomainOperationException: Не удалось вызвать операцию ‘ModifyLogiDashletXmlFile’. Исключение типа ‘System.ServiceModel.DomainServices.Клиент.Было вызвано исключение DomainOperationException’. в Phoenix.UI.SL.Infrastructure.Услуги.LogiReportService.<>c_DisplayClass8.<ModifyLogiDashletXmlFile>b_7 (операция InvokeOperation) в системе.ServiceModel.DomainServices.Клиент.Вызов операции.<>c_DisplayClass4 1.amp;<Createamp;>b__0(InvokeOperation 1 аргумент) в системе.ServiceModel.DomainServices.Клиент.InvokeOperation`1.InvokeCompleteAction() в системе.ServiceModel.DomainServices.Клиент.Операционная база.Завершено (ошибка исключения) в системе.ServiceModel.DomainServices.Клиент.Вызов операции.Завершено (ошибка исключения) в системе.ServiceModel.DomainServices.Клиент.DomainContext.CompleteInvoke(IAsyncResult AsyncResult) в системе.ServiceModel.DomainServices.Клиент.DomainContext.<>c_DisplayClass38.<InvokeOperation>b__34(объект)

атрибуты в классе:

 [EnableClientAccess(RequiresSecureEndpoint = true)]
    [LinqToEntitiesDomainServiceDescriptionProvider(typeof(PhoenixEntities))] // IMPORTANT: Must have this because we are returning/passing EF Entities from Phoenix Context
    [RequiresAuthentication]
    public class LogiReportService : DomainService
    {
...

}
  

Метод ввода:

 [Invoke]
public void ModifyLogiDashletXmlFile(IEnumerable<ParameterNameValuePair> paramNameValuePairs, Guid clientId, string dashletInstanceId)
{

    // Validate Client is has a valid relationship to the User (i.e. no disabled)
    if (this.PhoenixUser.MembershipClientIds.Contains(clientId))
    {
       ModifyLogiXmlFile(PhoenixUser.UserId, clientId.ToString(), dashletInstanceId, paramNameValuePairs);
    }
}
  

Что сбивает с толку, так это то, что другие конечные точки работают нормально. Различия между этой конечной точкой и другой заключаются в том, что эта записывает и считывает файлы из файловой системы. Пользователь домена приложения обладает полными правами, и возвращаемая ошибка, похоже, не связана с разрешениями.

Все идеи приветствуются. Я сталкиваюсь со стеной с этой проблемой.

Ответ №1:

Эта проблема оказалась проблемой с разрешениями на сервере. В систему записывался файл.

Службы RIA проглатывали ошибку и выдавали вместо нее общую ошибку. Я ввел try catch для метода ввода и зарегистрировал ошибку в базе данных. Затем я смог обнаружить реальную проблему.