IIS服务器上的异常当尝试使用SpeechSynthesizer在c#上创建.wav文件时。
答案 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)
只需将应用程序作为"管理员"运行即可。 ;)