У меня есть приложение Silverlight 4, использующее RIA Services, в котором я переместил весь специфичный для RIA Services код в отдельный модуль (библиотека классов WCF RIA Services) под названием «AppServices».Назовем основное приложение «Silverlight4App».Мне нужно аутентифицировать пользователей по другой базе данных, чем база данных, где хранятся остальные данные.Я добавил модель EF в AppServices.Web, где также находится служба аутентификации.Файл Web.config находится в основном приложении, то есть в Silverlight4App.
В разделе connectionStrings файла web.config у меня изначально было следующее:
<add name="AuthEntities" connectionString="metadata=res://*/AuthModel.csdl|res://*/AuthModel.ssdl|res://*/AuthModel.msl;provider=... />
, и я получил следующую ошибку:
"Операция загрузки не выполнена для запроса'GetUser'. Невозможно загрузить указанный ресурс метаданных. "
Затем я попробовал различные вещи, такие как:
<add name="AuthEntities" connectionString="metadata=..\..\bin\AuthModel.csdl|..\..\bin\AuthModel.ssdl|..\..\bin\AuthModel.msl;provider=... />
и получил эту ошибку:
" Операция загрузкиНе удалось выполнить запрос GetUser. Указанный путь метаданных недопустим. Допустимый путь должен быть либо существующим каталогом, либо существующим файлом с расширением «.csdl», «.ssdl» или «.msl», или URI, которыйидентифицирует встроенный ресурс. "
Я также пытался копировать файлы метаданных в разные места.В итоге я немного продвинулся в следующем.
<add name="AuthEntities" connectionString="metadata=~\..\..\..\Silverlight4App.Web\Metadata\AuthModel.csdl|~\..\..\..\Silverlight4App.Web\Metadata\AuthModel.ssdl|~\..\..\..\Silverlight4App.Web\Metadata\AuthModel.msl;provider=... />
При использовании указанной выше строки подключения я получил следующую ошибку:
"Операция загрузки не выполнена для запроса 'GetUser'. Предоставленная строка подключения недопустима, поскольку содержит недостаточное отображениеили сведения о метаданных. \ r \ nИмя параметра: connectionString Внутреннее сообщение об исключении: невозможно определить контекст приложения. Не удалось определить путь приложения ASP.NET. "
Ну, по крайней мере, кажется, найдено файлов метаданных!Из-за разочарования я наконец попытался просто жестко запрограммировать весь путь к файлам метаданных:
<add name="AuthEntities" connectionString="metadata=C:\Users\...\Silverlight4App.Web\Metadata\AuthModel.csdl|C:\Users\...\Silverlight4App.Web\Metadata\AuthModel.ssdl|C:\Users\...\Silverlight4App.Web\Metadata\AuthModel.msl;provider=... />
Это сработало отлично !!К сожалению, это паршивое решение, особенно когда я собираюсь развернуть приложение.
Кажется странным, что попытка, которую я пытался сделать перед жестко закодированной попыткой (см. Выше), жаловалась на то, что было недостаточно информации, и, тем не менее, жестко закодированная попытка, указывающая на точно такие же файлы, кажется, содержит достаточно информации.Хм ...
Есть идеи?Я, конечно, мог бы использовать некоторую помощь!