Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web api上的Azure预热不起作用_C#_Azure_Asp.net Web Api2_Azure Web App Service_Warm Up - Fatal编程技术网

C# web api上的Azure预热不起作用

C# web api上的Azure预热不起作用,c#,azure,asp.net-web-api2,azure-web-app-service,warm-up,C#,Azure,Asp.net Web Api2,Azure Web App Service,Warm Up,我有一个网站,上面有一些用WebAPI2和.NET4.6编写的web服务。我希望在重新启动站点或启动新实例(在Azure应用程序服务上)时初始化应用程序 我在webconfig中有以下代码: <configuration> ,,,, <system.webServer> ... <applicationInitialization doAppInitAfterRestart="true"> <add initializat

我有一个网站,上面有一些用WebAPI2和.NET4.6编写的web服务。我希望在重新启动站点或启动新实例(在Azure应用程序服务上)时初始化应用程序

我在webconfig中有以下代码:

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

       ...

  <applicationInitialization doAppInitAfterRestart="true">
  <add initializationPage="/"  />
  <add initializationPage="/api-v2/warmup/get"  />
</applicationInitialization>
我看不到任何日志。不是在我重新启动站点时,也不是在我进行扩展时。 我曾尝试使用postman调用我的api,但没有任何头(只是一个开始,它工作得很好,还写入了我的日志)

我已经读过这个帖子:

-Azure和webconfig上都没有Ip限制

-webconfig中没有url重写(如https或www)


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

您在
初始化页面
模块中缺少主机名,其中主机名将是您的实际网站名,即xx.azurewebsites.net



所以我终于成功了

问题出在我的代码中,而不是设置中

启动代码中有一部分正在向请求添加检查,如果它来自本地主机,它将停止进程

所以,我们从惨痛的经历中吸取了教训!:)

检查webconfig以获取重定向和重写
检查代码中是否有做同样事情的内容

,但在您发送的同一链接中清楚地显示“(这是可选的,如果没有指定,“localhost”将用作主机名)”@AshkanSirous哦,我错过了,您是否尝试过定义主机名,因为某些原因可能不起作用?是的,我让它起作用了,但它与主机名无关。有一部分代码一直在使本地主机的进程停止,以更改我应该禁用的端口,然后启动它working@AshkanSirous伟大的在这种情况下,您可以提供自己的答案并接受它
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();
    }
<system.webServer>
  <applicationInitialization
    doAppInitAfterRestart="true"
    skipManagedModules="true">
    <add initializationPage="/default.aspx" hostName="myhost"/>
  </applicationInitialization>