私は2つのウェブサイトで働いています。1 つは、xml を新しい asp.net (.net 3.5) Web サイトに投稿する既存の従来の ASP サイトです。従来の ASP サイトでは、vbscript で msxml の serverxmlhttp オブジェクトを使用して、この xml を送信しています。asp.netサイトに一見無関係な変更を加えるまで、すべてが機能します。
System.Speech.Synthesis を使用してテキストから wav ファイルを生成するコードを数行追加すると、従来の ASP Web サイトの serverxmlhttp.send コマンドがタイムアウトします。asp.net ページが正常に動作していることを確認できる限り、問題なく数行の新しいコードを実行できます (wav ファイルが生成されます)。問題の原因となっている数行の音声コードは、タイムアウトのかなり前に実行されます。
asp.net ページが、実際には送信されなくなった従来のページに何らかの確認応答を送信していたようです。また、音声コードが非同期である必要があるという例外をスローしていたことも指摘しておく必要があります。ただし、 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();
何が間違っているのか、またはこれをデバッグするために私が使用できるものについて何か提案はありますか?