2017-02-14 9 views
0

私のasp.netコアアプリケーションに問題があります。数分後にアプリケーションが停止しました。そして石英の私の仕事は失われます。私は何かを読んだ.netのコアアプリは決して止めなかったので、なぜそれに問題があるのですか?私のProgram.csのは、ケストレルを使用するコードが含まれています ASP.NETコアが停止しました

public static void Main(string[] args) 
{ 
    var host = new WebHostBuilder() 
     .UseKestrel() 
     .UseContentRoot(Directory.GetCurrentDirectory()) 
     .UseIISIntegration() 
     .UseStartup<Startup>() 
     .Build(); 

    host.Run(); 
} 

私はVisual Studioでの標準的な展開でアプリを公開します。

+0

Azure App Serviceを使用していますか?またはIIS?あなたに役立つ情報が少なくなります。 – Tseng

+0

私はホスティング 'https:// www.webio.pl'をホスティングしています。標準の.netアプリケーションをホストしていますので、IISを使用していると思います。 – donex93

+0

Kestrel自体はリサイクルしません。 ASP.NETコアかASP.NETアプリケーションかどうかは関係ありません – Tseng

答えて

2

IIS/Azure App Service(IISも稼働しています)は、アイドル時間が経過した後やサーバーのリソースが不足した後にアプリケーションプールをリサイクルします。リサイクルされないという声明はKestrelにのみ適用され、KestrelはIFS(Internet Facing Server)として使用することは推奨されていないため、通常はnginxの背後にあるLinuxに適用されます。

アイドル時間を設定してウォーミングアップフェーズを設定することはできますが、リソースが少なくても停止しないという保証はありません。

ASP.NET/Webapplication内のバックグラウンドタスクを実行します。タスクを再発生させるには、常にコンソールアプリケーションまたはWindowsサービスを使用します。

+0

私は4分待って何かをする必要があります後に私のアプリのためにバックグラウンドタンクを使用する必要があります。これはわずか4分ですが、私がそのような要求をしたとき:5リクエスト - 1メガバイト2分待ってから次の5リクエスト。私のサーバーは、これが最大5分であると私は考えていません。 – donex93

+0

はい、ASP.NETコアは使用しません。それを行うコンソールアプリケーションまたはWindowsサービスを作成します。 Webアプリケーションでは、それが連続的に実行されるという事実に決して頼るべきではありません。 – Tseng

+1

@Tseng:これは[hangfire](http://hangfire.io)のことです。asp.netとaspのバックグラウンドタスクスケジューラです。ネットコア。それはしばらくの間行ってきて、素晴らしい作品です。代わりに、少なくとも盲目的にWindowsサービスを推奨するのではなく、少なくとも言及する必要があります。 –

関連する問題