2010-10-12 2 views
11

Я создал небольшое приложение Silverlight 4.0/RIA Services и протестировал его. Я разработал приложение на машине дома и должен был переместить его в рабочую область. Я сделал это, нажав на исходный репозиторий, а затем клонировал его на машину dev на работе. Он строит без ошибок в обоих местоположениях.Недопустимый ожидаемый «файл» схемы URI «http»

Проблема возникает при попытке отладки в новом местоположении. В методе первый «Load()» от контекста домена я получаю следующее сообщение об ошибке:

The provided URI scheme 'file' is invalid expected 'http' 

я получаю, что отладчик пытается работать с файлом на основе URI, а не HTTP URI. Но почему? И как мне это исправить?

Поиск через SO возвратил некоторые аналогичные ошибки относительно недействительных схем URI, но не из них помогли мне с этой конкретной проблемой.

Спасибо, Джим

ответ

27

Убедитесь, что ваш проект запуска - это веб-проект, а не сам проект Silverlight.

+4

Или, если отладка отключена от браузера, тогда установите проект Silverlight в качестве запуска, но в настройках для проекта silverlight в разделе «Отладка» установите серверный проект как приложение, отличное от браузера, а не проект silverlight. Не полностью интуитивно, но вы должны сделать это, чтобы избавиться от проблемы «file: //». – JoeCool

+1

спасибо, что помогло. Я просто хочу добавить немного, если кто-то получит его. моя ошибка начала происходить, когда я удалил свой файл suo, я думаю, ссылка на стартовый проект находится в этом файле. – ramnz

0

Я уверен, что вы должны ссылаться на стороне сервера файл, а не локальный файл. Кроме того, большинству приложений Silverlight не разрешено обращаться к локальным файлам.

+0

Программа не написана для локальных локальных файлов. Ошибка возникает, когда модуль Silverlight вызывает вызов метода службы RIA. Это действительно работало над исходной средой разработки и только провалилось после перехода на другую идентичную (насколько я могу судить, но, очевидно, не совсем) среду. –

1

Что, вероятно, происходит в том, что клиентское приложение Silverlight пытается связаться с веб-службой RIA Services на стороне сервера, используя протокол «file: //».
Запустили ли вы файл Silverlight XAP непосредственно из файловой системы сервера, а не через URL-адрес «http: //»? Silverlight пытается использовать тот же протокол, что и тот, который используется для получения файла XAP.
Для по той же причине при запуске приложения из Visual Studio установите веб-проект как проект запуска, а не проект Silverlight (клиент).

1

Если вы используете OOB (Out Of Browser) и хотите отлаживать, то вы необходимо настроить проект клиента Silverlight как проект запуска, также в рамках проекта сервера, щелкнуть правой кнопкой мыши по «* TestPage.html» и «Установить как стартовую страницу». Затем, если вы получите ошибку ...

The provided URI scheme 'file' is invalid expected 'http' 

Затем откройте страницу свойств клиента Silverlight и UNCHECK «Включите запуск приложения из браузера», нажмите «Сохранить» и затем ПРОВЕРЬТЕ установку, и она должна работать. см. ... http://blogs.msdn.com/b/deepm/archive/2010/07/16/debugging-an-oob-silverlight-business-application.aspx

+0

Как я уже писал выше в своем комментарии к ZunTzu, вам также нужно перейти к настройкам проекта silverlight, а в разделе «Отладка» задайте серверный проект как внешнее приложение, а не проект silverlight. – JoeCool