在自主JobHost时找出托管Uri

时间:2017-08-21 21:36:18

标签: c# azure azure-webjobs azure-functions

我尝试使用JobHost自我托管Microsoft.Azure.WebJobs并包含Http扩展程序,但我似乎无法弄清楚它所托管的Uri /端口

这是我的主要方法:

static void Main(string[] args)
{
    var config = new JobHostConfiguration();

    var filter = new LogCategoryFilter();
    filter.DefaultLevel = LogLevel.Trace;

    config.LoggerFactory = new LoggerFactory()
        .AddConsole(filter.Filter);

    var httpExtensionConfiguration = new HttpExtensionConfiguration();
    config.UseHttp(httpExtensionConfiguration);


    if (config.IsDevelopment)
    {
        config.UseDevelopmentSettings();
    }

    var host = new JobHost(config);
    host.RunAndBlock();
}

这是运行时的输出窗口

look online

1 个答案:

答案 0 :(得分:3)

虽然HTTP扩展将添加所需的绑定,服务和HTTP功能,但它不提供监听器,因此它不会为您设置主机(它依赖于您需要设置的外部监听)。

使用Azure Functions运行时,WebHost本身就是侦听器。 CLI使用该实现来启动主机并公开HTTP功能。你可以在这里看到这种方法:

https://github.com/Azure/azure-functions-cli/blob/f0e8121c51569d8d0551fbb9bb81fbed5a9ad64c/src/Azure.Functions.Cli/Actions/HostActions/StartHostAction.cs#L102-L112

如果您不想依赖脚本WebHost(CLI利用其许多功能,因此在那里它是有意义的),只需在构建主机时直接提供应用程序,就可以采用更简单的方法。您可以查看CLI提供的Startup类,了解如何使用最新位注册和配置事物:

https://github.com/Azure/azure-functions-cli/blob/ff45a85c462c6f1e83e04dcba13da8bcca7099c5/src/Azure.Functions.Cli/Actions/HostActions/StartHostAction.cs#L349-L374

注意:您正在使用的扩展程序版本以及我分享的代码都是预先发布的(或者甚至尚未合并),因此它们可能会发生变化,但是这就是我们要走的方向。