尝试使用 SpeechSynthesizer 在 C# 上创建 .wav 文件时,IIS 服务器出现异常。
当应用程序无法访问语音供 SpeechSynthesizer 使用时,会导致此错误。第一个可能的原因是系统上缺少任何已安装的语音。很可能这不是问题,但您仍然应该通过运行如下代码来仔细检查:
SpeechSynthesizer ssTest = new SpeechSynthesizer();
System.Diagnostics.Debug.WriteLine(ssTest.GetInstalledVoices().Count);
假设上面返回的数字大于 0,则问题可能是应用程序安全设置的更复杂问题。
SpeechSynthesizer 类中的多个方法(包括 SetOutputToWaveFile)要求完全信任直接调用者。对于桌面应用程序(SpeechSynthesizer 类可能是为此设计的)而言,这可能不是一个大问题,但在 Web 环境中会产生更严重的安全影响。因此,IIS 的默认设置仅使应用程序部分受信任。有很多方法可以改变这种情况,可能是最快的,当然也是最肮脏的方法是切换应用程序池将默认身份更改为具有管理员权限的帐户,例如 LocalSystem 帐户。
再次强调,这将严重损害应用程序的安全性,在实施之前应进行充分研究。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)