同様の問題に関するいくつかの投稿を見ましたが、解決策はありません:/
コンソール アプリケーションを使用して Windows サービスをデバッグします。Web サイトでタスクを実行し、作成ログの http コード ステータスを収集できる必要があります。ご覧のとおり、機密性の高いコードは try/catch にあります。
デバッグ (F5) すると、キャッチされない WebException が発生します。実行すると (CTRL + F5)、例外のメッセージがコンソールに書き込まれ、プログラムが停止します。これは私のコードです:
public partial class Schedulor : ServiceBase
{
void RunTasks()
{
schedulor.Start();
List<Task> task = new List<Task>();
foreach (TaskPlanner tp in listTp)
{
if (tp.CountDown == 0 && tp.IsRunning == false)
{
// Initialisation lors de GetTasks()
tp.IsRunning = true;
try
{
task.Add(Task.Factory.StartNew(() => tr = tp.ExecuteBot.Execute())); // WEBEXECPTION HERE (cannot find 404)
}
catch (Exception e)
{
if (e is WebException)
{
// treatment
}
}
}
}
Task.WaitAll(task.ToArray());
CreateLogs();
}
}
public class Bot : IBot
{
public TaskResult Execute()
{
TaskResult tr = new TaskResult();
int codeResponse, timeout;
string credentials;
try
{
WebRequest wrSettings = WebRequest.Create(settings.Url);
// treatment
}
catch (Exception e)
{
//Console.WriteLine(e.Message);
if (e is WebException)
{
var code = ((HttpWebResponse)((WebException)e).Response).StatusCode;
if ((int)code != settings.HttpResponse)
{
tr.MyResult = TaskResult.Result.nok;
goto next;
}
else tr.MyResult = TaskResult.Result.ok;
}
}
next:
return tr;
}
}
キャッチが機能しない理由がわかりません。このタスクは、Web サイトが 404 などを返すかどうかをテストできるため、この情報を処理する必要があります。
前もって感謝します
編集 : - - - - - -
削除されたコードは本当の問題ではないため、要求に応じてコードを削減します