System.Speech генерирует исключение "Нет установленного голоса в системе или недоступно с текущими настройками безопасности" в службе Windows

Долгое время читатель, первый постер.

Я занимаюсь разработкой службы Windows на C# .Net 3.5 для выполнения операций преобразования текста в речь.

Я использую System.Speech (Microsoft Speech API 3.x).

Я развернул службу на сервере Win2008 x64 и теперь выдает следующее исключение:

System.InvalidOperationException: No voice installed on the system or none available with the current security setting.
   at System.Speech.Internal.Synthesis.VoiceSynthesis.Speak(Prompt prompt)
   at System.Speech.Synthesis.SpeechSynthesizer.Speak(Prompt prompt)
   at System.Speech.Synthesis.SpeechSynthesizer.Speak(String textToSpeak)

Сервис работает под учетной записью домена. Если я изменю службу для запуска под своей учетной записью личного домена (которая имеет довольно высокие привилегии), все будет работать идеально (так что голос [Анна] определенно установлен). Так что я совершенно уверен, что это проблема безопасности.

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

И это должен быть этот конкретный пользователь, потому что он используется для аутентификации Windows для базы данных MSSQL.

Заранее спасибо.

4 ответа

Простое исправление: предоставить доступ на чтение / запись к C:\windows\system32\config\systemprofile\appdata\roaming для того же пользователя, под которым работает служба.

Я вышел из Visual Studio и снова открыл его после сохранения, и проблема была решена.

В x64 OS это вызвано конфигурацией сборки AnyCPU. Переключитесь на конфигурацию сборки x86, и она должна работать.

Просто запустите приложение от имени администратора.;)

ошибказапустить от имени администратора

Другие вопросы по тегам