1753111992
2025-07-21 14:41:00
アプリケーションの洞察ログが誤った404エラーでいっぱいになったとき、あなたはそれを嫌いませんか?
世話をする簡単なリクエストの1つは、Outlook Autodiscoverのためのものです。ここに、最適化するCMS 12のそれらを取り除くための小さくて非常に効率的な方法があります。その後、見るべき404エラーが少なくなります。
404エラーが発生した理由 POST /AutoDiscover/AutoDiscover.xml 失敗した要求ログの(および同様のバリアント)は、Outlookアプリケーションが起動時に構成を検索しようとすることです。そして、これを行う方法の1つは、アクティブな電子メールアドレスのドメイン上のパスを検索することです。
しかし、404エラーがキャッシュされることはありません。したがって、Outlookは次に再試行するだけです。 404が発生した後、その構成が別の方法で見つかった可能性があります。それでも、次回開くと、もう一度やり直します。
解決
簡単な解決策は、リクエストを適切なエンドポイントに単純にリダイレクトすることです。以下のような小さくて軽量のミドルウェアを使用すると、ログにこれらの404エラーがこれ以上ありません。
namespace StefanOlsen.Web.Infrastructure.Middleware;///
/// Middleware to redirect autodiscover requests from Outlook to the external autodiscover service.
///
public class AutodiscoverMiddleware
{
private static readonly PathString AutodiscoverPath = new("/autodiscover/autodiscover.xml");
// TODO: Amend redirect path with your own endpoint.
private static readonly StringValues RedirectLocation = new("http://autodiscover.yourdomain.tld/autodiscover/autodiscover.xml");
private readonly RequestDelegate _next;public AutodiscoverMiddleware(RequestDelegate next) => _next = next;
public Task Invoke(HttpContext context)
{
if (!context.Request.Path.Equals(AutodiscoverPath))
{
return _next.Invoke(context);
}context.Response.Headers.Location = RedirectLocation;
context.Response.StatusCode = (int)HttpStatusCode.PermanentRedirect;
return Task.CompletedTask;
}
}
その後、それを呼び出すことができます Startup.cs このような。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseMiddleware();
// Other middlewares go here.
}
Configureメソッドに高くする必要があります。承認、HTTPSリダイレクト、およびその他のミドルウェアよりも高いことが望ましい。そうすれば、これらの自動展開リクエストは、他のミドルウェアを実行するためにリソースを費やす前に処理されます。
ヒント!このミドルウェアパターンは、他の種類の静的リダイレクトアクションにも使用できます。
#OutlookのAutoDiscoverリクエストを簡単に送信してください