gpt4 book ai didi

c# - Web api 上的 Azure 预热不起作用

转载 作者:行者123 更新时间:2023-11-30 22:59:57 25 4
gpt4 key购买 nike

我有一个网站,其中包含一些使用 Web API 2 和 .net 4.6 编写的 Web 服务。我希望在重新启动站点或启动新实例(在 Azure 应用服务上)时初始化应用程序。

我在 webconfig 中有这段代码:

<configuration>
,,,,
<system.webServer>

...

<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/" />
<add initializationPage="/api-v2/warmup/get" />
</applicationInitialization>

我有这个 Controller :

public class WarmupController : ApiController
{
[HttpGet]
[RequireRole(UserRole.None)]
[IgnoreTypeScriptGeneration]
public IHttpActionResult Get()
{
Log.Information($"Warming up started. {Environment.MachineName}");
// my warm up code
Log.Information($"Warming up succeeded. {Environment.MachineName}");
return Ok();
}

我看不到任何日志。当我重新启动站点或横向扩展时都不会。我尝试使用没有任何 header 的 postman 调用我的 api(只需访问 http://xxx//api-v2/warmup/get 并且它工作正常并且还写入了我的日志。

我已经读过这个帖子:Cannot warm up pages using applicationInitialization in webconfig

-Azure 和 Webconfig 上都没有 IP 限制

-webconfig 中没有 URL 重写(例如 https 或 www。)

-不涉及外部系统(例如 CMS),因此我不需要发送主机名,但我也尝试过发送该主机名,但没有成功

最佳答案

您在 initializationPage 模块中缺少 hostName,其中主机名将是您的实际网站名称即 xx.azurewebsites.net

<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>

Refer here

关于c# - Web api 上的 Azure 预热不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com