Ошибка 404 — файл не найден при вызове службы Silverlight RIA

#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 
  

и после этого все работало нормально.

Крис