90秒以上かかるUpdatePanel
からリクエストを送信しています。私はこのタイムアウトエラーが発生しています:
Microsoft JScriptランタイムエラー:Sys.WebForms.PageRequestManagerTimeoutException:サーバーリクエストがタイムアウトしました。
通話がタイムアウトするまでの時間を増やす方法があるかどうか誰もが知っていますか?
ScriptManagerにはプロパティがあります。
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プロパティを設定して設定します。
まあ、リクエストが完全に実行されない可能性があるだけで破棄したい場合はうまくいくと思います...
AsyncPostBackTimeOutプロパティをScriptManagerタグに追加して、デフォルトのタイムアウトを90秒からアプリケーションにとってより適切な値に変更します。
さらに、コールを受信するWebサービスを変更して、より速く移動するようにします。インターネット時間では90秒も無限になります。
直面している問題は、アプリケーションが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>
.csファイルのストアドプロシージャを呼び出すSqlCommand
でタイムアウトを設定できます。
command.CommandTimeout = 30*1000;
あなたが解決策を持っていることを願っています!