3

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

4

3 回答 3

1

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

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

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

SpeechSynthesizer 类中的几个方法(包括 SetOutputToWaveFile)要求直接调用者完全受信任。对于桌面应用程序(SpeechSynthesizer 类可能是为它设计的)来说,这可能不是一个大问题,但在 Web 环境中会产生更严重的安全影响。因此,IIS 的默认设置只使应用程序部分受信任。有很多方法可以改变这一点,可能最快也是最脏的方法是将应用程序池的身份从默认值切换为具有管理员权限的帐户,如 LocalSystem 帐户。

再次强调一下,这将严重损害您的应用程序的安全性,应在实施前进行充分研究。

于 2011-08-18T17:11:07.443 回答
1

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

于 2014-02-20T14:49:08.383 回答
0

简单地说,以“管理员”身份运行应用程序。;)

错误 以管理员身份运行

于 2015-02-19T09:56:36.697 回答