IISサーバーでの例外SpeechSynthesizerを使用してC#で.wavファイルを作成しようとします。システムに音声がインストールされていないか、現在のセキュリティ設定で利用可能なものがありません。
答えて
このエラーは、アプリケーションがSpeechSynthesizerで使用する音声にアクセスできない場合に発生します。最初に考えられる原因は、システムにインストールされている音声がないことです。オッズは、これは問題ではありませんですが、あなたは、次のコードビットのような何か実行して、まだダブルチェックする必要があります
SpeechSynthesizer ssTest = new SpeechSynthesizer();
System.Diagnostics.Debug.WriteLine(ssTest.GetInstalledVoices().Count);
上記と仮定すると、問題はおそらく、より複雑な問題であり、0よりも数値が高いほど返しますアプリケーションのセキュリティ設定を使用します。
SetOutputToWaveFileを含むSpeechSynthesizerクラスのいくつかのメソッドでは、直接呼び出し元を完全に信頼する必要があります。これはデスクトップアプリケーション(SpeechSynthesizerクラスが設計されている可能性が高い)にとって大きな問題ではないかもしれませんが、Web環境ではより深刻なセキュリティへの影響があります。したがって、IISの既定の設定では、アプリケーションが部分的に信頼されます。これを変更するにはいくつかの方法がありますが、最も迅速で確実に最も汚い方法は、デフォルトからLocalSystemアカウントのような管理者権限を持つアカウントへのswitching the application pool'sのIDです。
重複していますが、これはアプリケーションのセキュリティに重大な影響を及ぼすため、実装する前に完全に調査する必要があります。
単純な修正:アプリケーションプールが実行されているのと同じユーザーのC:\windows\system32\config\systemprofile\appdata\roaming
への読み取り/書き込みアクセスを許可します。
単に「管理者」としてアプリを実行してください。 ;)

- 1. 音声認識 - 処理されない例外 - インストールされていてもSAPIが見つかりません
- 2. Google ::音声perlモジュールが現在動作していません
- 3. 利用可能なデータがありませんテーブルビューにラベルが表示されていません
- 4. 利用可能なデータベースはありません。アクセス権は、私がインストールさ
- 5. NotSupported:サポートされていないURLスキーム '':そのスキームで利用可能なハンドラーがありません。
- 6. 現在利用可能なアーキタイプはありません。インデックスは<strong>m2eclipse</strong>でのEclipseでインストール
- 7. C++利用可能なデフォルトのコンストラクタはありませんが、コンストラクタは指定していませんか?
- 8. Webpack + Reactable:再利用可能なコンポーネントが定義されていません
- 9. OS Xにbrewがインストールされていても実行可能ファイルにパスが設定されていない
- 10. Visual Studioで「利用可能なデバイスがありません」2015
- 11. golang net.Connには利用可能なデータがありません
- 12. スーパークラス(Java)に利用可能なコンストラクタがありません
- 13. カーセージエラー:バイナリに利用可能なバージョンがありません
- 14. RパッケージがCRANに登録されていますが、利用可能なパッケージにはありません
- 15. MS Dynamics CRM 4 - 現在の設定システムでユーザースコープの設定がサポートされていません
- 16. "テーブルで利用可能なデータがありません"は、データテーブルのロード後でも表示されます
- 17. 利用可能なAndroidプロジェクトがありません
- 18. Cassia:Win32Exception利用可能なデータがありません
- 19. symfony2 app console:利用可能なコマンドがありません
- 20. TCP接続エラー「利用可能なバッファスペースがありません」
- 21. 広告コントロール "利用可能な広告がありません"
- 22. SoundPoolエラー:利用可能なトラック名がありません
- 23. SOAPサービスクライアント "利用可能な更新がありません"
- 24. IntellJ IDEA Kotlinプラグイン - 「利用可能なコンフィギュレータがありません」
- 25. 利用可能なプラグインがありません - Jenkins
- 26. C++ "利用可能なデフォルトコンストラクタがありません"
- 27. 利用可能なプラットフォームがありません
- 28. pythonでオーディオファイルの音量を標準化する方法:現在利用可能なパッケージはありますか?
- 29. アンドロイド:音声認識が利用可能な技術は何ですか
- 30. ImportError:あなたのシステムにnumpyがインストールされていません
は、ローカルシステム、無ダイスにアプリケーションプールをスイッチ。これはユーザー権限の問題ではなく、実行コンテキストの信頼に関連しているようです。上に貼り付けたコードを実行するコンソールアプリケーションは、ネットワークドライブのエラー(私のユーザー、部分的な信頼の実行)から実行されますが、ローカルで正しく動作します(私のユーザー、完全な信頼の実行)。それはユーザの問題ではなく、実行コンテキストの信頼の問題です.Dev WebサーバやIISの変更方法はわかりません... –
@JimmyHoffaセキュリティモデルはコンソールアプリケーションの場合と少し違って処理されるため、完璧なテストケースではありません。コンソールアプリ[ここ](http://stackoverflow.com/q/4827670/113343)にも同様の質問があります。 Webアプリケーションに問題が残っている場合は、[ここ](http://stackoverflow.com/a/10220416/113343)のようにweb.configのように完全な信頼を与えることができます。 – sglantz
LocalSystem IDを使用するようにアプリケーションプールを変更すると、私のために働きました。私はこれのセキュリティの影響を十分に研究していないので、これが最終的な解決策になるかどうかはわかりませんが、今のところ私はうまくいきます。 – user3308241