系统上未安装语音或当前安全设置无法使用

时间:2011-08-11 05:27:03

标签: iis speechsynthesizer

IIS服务器上的异常当尝试使用SpeechSynthesizer在c#上创建.wav文件时。

3 个答案:

答案 0 :(得分:1)

当应用程序无法访问SpeechSynthesizer使用的语音时,会导致此错误。第一个可能的原因是系统上没有任何安装的声音。赔率是不是问题,但你应该通过运行类似下面的代码来仔细检查:

SpeechSynthesizer ssTest = new SpeechSynthesizer();
System.Diagnostics.Debug.WriteLine(ssTest.GetInstalledVoices().Count);

假设上面的数字返回高于0的数字,则问题可能是应用程序安全设置的一个更复杂的问题。

SpeechSynthesizer类中的几个方法(包括SetOutputToWaveFile)要求直接调用者完全受信任。这可能不是桌面应用程序(SpeechSynthesizer类可能设计用于)的一个巨大问题,但在Web环境中具有更严重的安全性影响。因此,IIS的默认设置仅使应用程序部分受信任。有很多方法可以改变这种情况,可能最快,最严重的方式是switching the application pool's身份从默认到具有管理员权限的帐户,如LocalSystem帐户。

再一次,只是为了强调,这将严重损害您的应用程序的安全性,并应在实施之前进行全面研究。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

error run as administrator