UpdatePanel
から90 秒以上かかるリクエストを作成しています。次のタイムアウト エラーが発生します。
Microsoft JScript ランタイム エラー: Sys.WebForms.PageRequestManagerTimeoutException: サーバー要求がタイムアウトしました。
通話がタイムアウトするまでの時間を増やす方法があるかどうかは誰にもわかりませんか?
UpdatePanel
から90 秒以上かかるリクエストを作成しています。次のタイムアウト エラーが発生します。
Microsoft JScript ランタイム エラー: Sys.WebForms.PageRequestManagerTimeoutException: サーバー要求がタイムアウトしました。
通話がタイムアウトするまでの時間を増やす方法があるかどうかは誰にもわかりませんか?
ScriptManager には、タイムアウトを秒単位で設定できるプロパティがあります。デフォルト値は 90 秒です。
AsyncPostBackTimeout="300"
私の場合、ScriptManager オブジェクトはマスター ページ ファイルで作成され、コンテンツ ページ ファイルと共有されました。そのため、コンテンツ ページの ScriptManager.AsyncPostBackTimeout プロパティを変更するには、コンテンツ ページの aspx.cs ファイル内のオブジェクトにアクセスする必要がありました。
protected void Page_Load(object sender, EventArgs e)
{
. . .
ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
_scriptMan.AsyncPostBackTimeout = 36000;
}
これでうまくいきました(基本的にすべてのタイムアウトを無視するだけです):
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') {
args.set_errorHandled(true);
}
});
</script>
以下の手順に従ってください。
ステップ 1: web.configで、設定httpRuntime maxRequestLength="1024000" executionTimeout="999999"
ステップ 2: Web ページの ScriptManager に次の設定を追加します。AsyncPostBackTimeout ="360000"
これで問題は解決します。
これは、IIS で ASP スクリプトのタイムアウトを変更することで構成できる場合があります。
Web サイトのプロパティ、仮想ディレクトリ、構成ボタン、オプション タブにあります。
または、Server.ScriptTimeout プロパティを設定して設定します。
あなたが直面している問題は、アプリケーションが SQL データベース クエリでタイムアウトになったときです。出力を返すのにデフォルトよりも時間がかかっています。そのため、ConnectionTimeout プロパティを増やす必要があります。
いくつかの方法でそれを行うことができます:
接続文字列にはConnectionTimeout
プロパティがあります。データベースの接続が開かれるまでコードが待機する最大秒数を決定するプロパティです。の接続文字列セクションで接続タイムアウトを設定できますweb.config
。
<connectionstrings>
<add name="ConnectionString"
connectionstring="Database=UKTST1;Server=BRESAWN;uid=" system.data.sqlclient="/><br mode=" hold=" /><br mode=" html="> <asp:ToolkitScriptManager runat=" server=" AsyncPostBackTimeOut=" 6000="><br mode=">
</add>
</connectionstrings>
ページAsyncPostBackTimeout="6000"
に入れることができます.aspx
<asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
</asp:ToolkitScriptManager>
SqlCommand
.cs ファイルでストアド プロシージャを呼び出す場所で、タイムアウトを設定できます。
command.CommandTimeout = 30*1000;
解決策があることを願っています!
まあ、完全には実行されない可能性があるリクエストを破棄したいだけなら、それでうまくいくと思います...
AsyncPostBackTimeOut プロパティを ScriptManager タグに追加して、デフォルトのタイムアウトを 90 秒からアプリケーションにとってより適切な値に変更します。
さらに、呼び出しを受信する Web サービスを変更して、より高速に動作することを検討してください。90 秒は、インターネット時間の無限大かもしれません。