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, и она должна работать.