#silverlight-4.0 #wcf-ria-services
#silverlight-4.0 #wcf-ria-services
Вопрос:
Я повсюду ищу решение моей проблемы, но я не могу его найти. Я создал навигационное приложение Silverlight 4 и использую службы RIA для обработки пользовательского объекта (который, по сути, выполняет серверные вызовы COM DLL). В моей среде отладки все работает нормально, но когда я пытаюсь выполнить развертывание в IIS7 (на компьютере разработчика) как веб-сайт, при вызове запроса Get для объекта выдается следующая ошибка:
Load operation failed for query 'GetNewHWCoil'. The remote server returned an error: NotFound.
at System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error)
at System.ServiceModel.DomainServices.Client.LoadOperation.Complete(Exception error)
at System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult)
at System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass1b.<Load>b__17(Object )
Все, что я нашел в Интернете, говорит о необходимости проверить область аутентификации в IIS и убедиться, что она настроена только на анонимную аутентификацию, каковой она и является. И они также говорят, чтобы включить ведение журнала WCF, который, когда я добавляю необходимый текст в файл web.config, я все еще не получаю никаких журналов. Они также говорят использовать Fiddler2 для отслеживания HTTP-вызовов, но я получаю только ошибку 404, когда textview выдает мне стандартный веб-сайт IIS file not found. Я не могу понять, как отладить эту проблему.
Приложению Silverlight необходимо выполнить вызовы к набору сторонних COM-библиотек DLL для расчета производительности водяных змеевиков. Поскольку я не хочу, чтобы приложение запускало OOB (это сведет на нет весь смысл того, что это веб-приложение, а не приложение WPF) У меня ASP.net проект взаимодействует с библиотеками DLL с использованием пользовательских объектов.
Функция (или запрос, как ее называют службы RIA) GetNewHWCoil находится в классе DomainService и использует этот код:
Public Function GetNewHWCoil() as HWCoil 'HWCoil is a custom object
If bRanCalc then 'bRanCalc is a global boolean variable that gets set to true if the calc call on the dlls have been made
Return mHWCoil 'global copy of the calculated coil object
bRanCalc = False
else
Return New HWCoil
end if
End Function
Ошибка запускается до того, как должно быть вызвано какое-либо вычисление, поэтому предполагается, что это ошибка в части ‘Return New HWCoil’.
Будем признательны за любую помощь по этому вопросу.
Спасибо,
Крис
Ответ №1:
Я нашел решение своей проблемы. Я обнаружил, что могу заставить VS запустить отладку из IIS, и когда я заставил его создать виртуальный каталог, он сказал мне, что мне нужно установить ASP.NET 4 на сервере. Я думал, что, проверив ASP.NET установите флажок в диалоговом окне «Добавить компоненты Windows», что я уже это сделал. Но он установил только версию .NET 2. Итак, после поиска этой новой проблемы в Интернете, я обнаружил, что мне нужно запустить команду
C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_regiis -i
и после этого все работало нормально.
Крис