Ошибка 404 - файл не найден при вызове службы Silverlight RIA - PullRequest
2 голосов
/ 25 мая 2011

У меня везде есть решение моей проблемы, но я не могу его найти. Я создал приложение Silverlight 4 Navigation и использую службы RIA для обработки пользовательского объекта (который по сути выполняет серверные вызовы в COM-библиотеки). В моей среде отладки все работает нормально, но когда я пытаюсь развернуть 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, который не найден. Я не могу понять, как отладить эту проблему.

Приложение Silverlight должно совершать вызовы в набор сторонних COM-библиотек для расчета производительности водяных катушек. Так как я не хочу, чтобы приложение запускало OOB (это сводит на нет весь смысл того, что оно является веб-приложением, а не приложением WPF), у меня есть проект ASP.net, взаимодействующий с библиотеками с помощью пользовательских объектов.

Функция (или Запрос, как ее называют службы 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

Ошибка запускается до того, как должен быть вызван любой расчет, поэтому предполагается, что он является ошибкой в ​​части «Возврат нового HWCoil».

Любая помощь по этому вопросу будет принята.

Спасибо

Chris

1 Ответ

3 голосов
/ 26 мая 2011

Я нашел решение своей проблемы.Я понял, что VS может запустить отладку из IIS, и когда я создал виртуальный каталог, он сказал, что мне нужно установить ASP.NET 4 на сервере.Я подумал, что, установив флажок ASP.NET в диалоговом окне «Добавить компоненты Windows», я уже это сделал.Но это только установленная версия .NET 2.Поэтому после поиска в сети этой новой проблемы я обнаружил, что мне нужно запустить команду

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i 

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

Крис

...