Azure Functions System.Net.Primitives:值不能为空。 (参数“主机”)
Posted
技术标签:
【中文标题】Azure Functions System.Net.Primitives:值不能为空。 (参数“主机”)【英文标题】:Azure Functions System.Net.Primitives: Value cannot be null. (Parameter 'host') 【发布时间】:2022-01-08 16:58:26 【问题描述】:当我向函数发送 HTTP 请求时,它会在控制台输出上显示此错误,并返回 HTTP 500 状态代码,而不会到达函数第一行的断点。
执行“验证”(失败,Id=548b4612-42f8-4e49-886a-da6888045c32, 持续时间 = 343 毫秒)System.Net.Primitives:值不能为空。 (参数“主机”)发生了未处理的主机错误。 System.Net.Primitives:值不能为空。 (参数“主机”)。
功能
[FunctionName("Validate")]
public async Task Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] string req,
[SignalR(HubName = "PubSub")] IAsyncCollector<SignalRMessage> signalRMessageQueue)
...
host.json
"version": "2.0",
"logging":
"applicationInsights":
"samplingExcludedTypes": "Request",
"samplingSettings":
"isEnabled": true
.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
<RootNamespace>ZulaMobile.Lobby.StoreValidation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.30" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.SignalRService" Version="1.6.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.21" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\zulamobile-azure-lobby-common\zulamobile-azure-lobby-common.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Functions\CafeBazaar\" />
<Folder Include="Huawei\" />
</ItemGroup>
</Project>
【问题讨论】:
您能从 csproj 发布您的依赖项吗? @misha130 我添加了整个 .csproj。 这只发生在本地,对吧? 是的,我还没有在 Azure 上尝试过。 @AjayKumarGhose-MT 嗨,Ajay,据我所知,这是一个 DI 问题。于是解决了。抱歉回复晚了。 【参考方案1】:我尝试重现相同的问题,但最终效果很好。 接下来是这个MS DOC & 演示GitHub 项目,
在 Azure 门户中创建了 Signal IR。从我的 VS Code 打开下载文件夹-
并将以下包添加到我的本地这是我的.csproj
文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.SignalRService" Version="1.6.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />
</ItemGroup>
<ItemGroup>
<None Update="content\index.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
并确保您已在 local settings.json
中添加连接字符串,该字符串必须从 Azure signalIR > Keys>Connection string.
的门户网站复制
以下是一些截图供参考输出:
注意:如果仍然遇到同样的问题,您可以尝试卸载 Azure function V3
并重新安装。
更多信息请参考SO THREAD。
【讨论】:
以上是关于Azure Functions System.Net.Primitives:值不能为空。 (参数“主机”)的主要内容,如果未能解决你的问题,请参考以下文章
AZURE_FUNCTIONS_ENVIRONMENT 与 ASPNETCORE_ENVIRONMENT
使用“apollo-server-azure-functions”的 Apollo 订阅
在 Java 中使用 Visual Studio Code 的 Azure Functions 项目