#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 для метода ввода и зарегистрировал ошибку в базе данных. Затем я смог обнаружить реальную проблему.