运行 本地不同端口上的 Azure Functions V3 (.NET 5)

Run Azure Functions V3 (.NET 5) on a different port locally

对于以前版本的 Azure Functions,我曾经能够在 Properties -> Debug -> Application Arguments

中使用这一行
host start --port 7073 --pause-on-error

但是,在 Azure Functions V3 中,运行ning .NET 5,它不起作用。

我尝试 运行 时收到以下消息。

Could not execute because the specified command or file was not found. Possible reasons for this include:

  • You misspelled a built-in dotnet command.
  • You intended to execute a .NET program, but dotnet-host does not exist.
  • You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

我需要为 .NET 5 使用不同的命令吗?还是放在完全不同的地方?

我用任务管理器做了一些挖掘,当你从 VS 启动 Function 应用程序时,我可以看到两个 dotnet 进程 运行:

  • dotnet path/to/func-sdk/func.dll host start --port 7071 --pause-on-error
  • dotnet path/to/your/app/bin/AppName.dll --host 127.0.0.1 --port 51289 --workerId some-guid --requestId some-guid2 --grpcMaxMessage

似乎命令已更改为 dotnet func.dll host start ... 即 bin/Debug/net5.0 文件夹中的 运行,而不是之前的 func host start.

我们至少可以通过将应用程序参数设置为来更改端口:

"%LOCALAPPDATA%\AzureFunctionsTools\Releases.23.5\cli_x64\func.dll" host start --port 7073 --pause-on-error

但现在我们正在对函数版本进行硬编码:\

我不确定是否可以从变量中获取函数 version/path。如果有人知道,请发表评论:)

对于 Visual Studio 2022 的 .NET 6 预览版,如果它作为项目而不是可执行文件运行,您只需传入以下命令:

host start --port 11000

对于可执行项目,如果不指定详细路径,我无法轻松完成它。 Build Azure Functions with .NET 6