Проблема доступа к ресурсам EF из службы Windows - PullRequest
1 голос
/ 06 мая 2011

У меня есть служба WCF, которая использует Entity Frameworks для подключения к базе данных, все они размещены в службе Windows. Проблема заключается в том, что при обработке первого сообщения, которое вызывает доступ к базе данных, возникает исключение: «Не удается разрешить сборку« MyService.exe »». По сути, при работе в качестве службы Windows EF не может найти встроенные ресурсы.

Я проверил наличие 3 ресурсов: csdl, ssdl, msl, используя .Net Reflector в статическом exe, и они там. Я использую эту строку подключения

    metadata=res:// MyService.exe/MyModel.csdl|
             res:// MyService.exe/MyModel.ssdl| 
             res://MyService.exe/MyModel.msl; provider=...".  

Я добавил код в Службу Windows для перечисления встроенных ресурсов в методе OnStart при запуске службы (используя GetExecutingAssembly (). GetManifestResourceNames ()), и он там ничего не показывает. [конечно, win svc устанавливается / запускается с помощью installutil + net start]. Когда я запускаю практически идентичный проект, ссылаясь на все те же источники, включая app.config, как приложение с интерактивной консолью (разумеется, на Main ()), все работает нормально, включая перечисление ресурсов (все 3 файла отображения edmx) здесь). Win Svc работает под локальной системой.

Кто-нибудь еще испытывал трудности с использованием EF в службе Windows? Любые идеи о том, что идет не так или как диагностировать / исправить это?

1 Ответ

0 голосов
/ 24 июня 2011

Попробуйте заменить «MyService.exe» на «*» следующим образом:

<add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=DatabaseName;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...