System.Speech在Windows服务中抛出“系统上没有安装语音或当前安全设置无法使用”的例外情况

时间:2013-02-04 23:30:10

标签: c# windows-services text-to-speech

长期读者,第一次海报。

我正在使用C#.Net 3.5开发Windows服务来执行文本到语音操作。

我正在使用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)

该服务在域帐户下运行。如果我将服务更改为在我自己的个人域帐户(具有相当高的权限)下运行,那么一切都运行良好(因此安装了语音[Anna])。所以我很确定这是一个安全问题。

我需要对其他域帐户进行哪些权限/修改才能使其正常工作?

它需要是这个特定的用户,因为它用于MSSQL数据库的Windows身份验证。

提前致谢。

4 个答案:

答案 0 :(得分:1)

简单修复:为运行该服务的同一用户授予对C:\windows\system32\config\systemprofile\appdata\roaming的读/写访问权限。

答案 1 :(得分:0)

在x64 OS中,这是由AnyCPU构建配置引起的。切换到x86构建配置,它应该可以工作。

答案 2 :(得分:0)

我退出Visual Studio并在保存后重新打开它,问题就解决了。

答案 3 :(得分:-1)

只需将应用程序作为“管理员”运行即可。 ;)

error run as administrator