1

我在两个网站上工作。一个是现有的经典 asp 站点,它将 xml 发布到新的 asp.net (.net 3.5) 网站。经典的 asp 站点在 vbscript 中使用 msxml 的 serverxmlhttp 对象来发送这个 xml。在我对 asp.net 站点进行看似无关的更改之前,整个过程都有效。

当我添加几行使用 System.Speech.Synthesis 从文本生成 wav 文件的代码时,经典的 asp 网站 serverxmlhttp.send 命令超时。据我所知,asp.net 页面工作正常,它通过几行新代码没有问题(生成 wav 文件)。导致问题的几行语音代码在超时之前就完成了。

看起来 asp.net 页面实际上正在向不再发送的经典页面发送某种确认。我还应该指出,语音代码抛出了一个异常,说它需要是异步的,我通过将 Async="true" 添加到 . 但是,它在 async="true" 时有效,只是那些语音线破坏了它。“问题代码”只是

SpeechSynthesizer speaker = new SpeechSynthesizer();
speaker.Volume = 100;
speaker.SelectVoiceByHints(System.Speech.Synthesis.VoiceGender.Female, System.Speech.Synthesis.VoiceAge.Adult, 0);

try
{
    speaker.SetOutputToWaveFile("c:\\test\\output.wav");
}
catch (Exception ex)
{
    retVal = false;
}

speaker.Speak(msgText);
speaker.SetOutputToDefaultAudioDevice();

有没有人对可能出现的问题或我可以用来帮助调试的内容有任何建议?

4

1 回答 1

0

似乎 asp.net 页面实际上正在向不再发送的经典页面发送某种确认

听起来您应该对其进行更多调查,以便您可以告诉我们服务器之前和之后的响应行为。还请指出抛出的异常。

我的猜测是这些 API 在服务过程中不能很好地工作。我真的不知道。我很好奇这个例外,你不清楚你做了什么异步。

于 2009-01-05T06:16:01.600 回答