2 回答
TA贡献2021条经验 获得超8个赞
问题现在在这里跟踪。运行时文件夹[FunctionProject]\bin\Debug\netcoreapp2.1\bin\runtimes中的程序集不会加载到函数上下文中。
在@Adrian 的帮助下,事实证明问题WinHttpHandler is only supported on .NET Framework and .NET Core runtimes on Windows是由于%USERPROFILE%\.nuget\packages\system.net.http.winhttphandler\4.4.0\lib\netstandard2.0在我们需要运行时程序集时从 lib 复制的错误程序集所致。
解决方法是将这些运行时程序集复制到bin文件夹以使其由函数宿主加载。后Google.AdWords安装24.1.0,右键单击项目,Edit <FunctionProjectName>.csproj添加复制操作。有了 nuget 包的完整路径,我们不必先将程序集复制到我们的项目中。
请注意,一旦我们安装了新版本的软件包,这些路径可能会改变。
<!-- For publish -->
<ItemGroup>
<None Include="$(USERPROFILE)\.nuget\packages\system.private.servicemodel\4.4.2\runtimes\win7\lib\netstandard2.0\System.Private.ServiceModel.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="$(USERPROFILE)\.nuget\packages\system.net.http.winhttphandler\4.4.0\runtimes\win\lib\netstandard2.0\System.Net.Http.WinHttpHandler.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<!-- For local debug -->
<Target Name="CopyRuntime" BeforeTargets="Build">
<Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.net.http.winhttphandler\4.4.0\runtimes\win\lib\netstandard2.0\System.Net.Http.WinHttpHandler.dll" DestinationFolder="$(OutputPath)\bin" />
<Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.private.servicemodel\4.4.2\runtimes\win7\lib\netstandard2.0\System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)\bin" />
</Target>
TA贡献1719条经验 获得超6个赞
Jerry 描述的相同解决方法将适用于该WinHttpHandler问题。我的 Azure Functions v2 项目文件中有以下内容:
<ItemGroup>
<None Update="System.Private.ServiceModel.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="System.Net.Http.WinHttpHandler.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="CopySPSM" BeforeTargets="Build">
<Copy SourceFiles="System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)\bin" />
<Copy SourceFiles="System.Net.Http.WinHttpHandler.dll" DestinationFolder="$(OutputPath)\bin" />
</Target>
FWIW,WinHttpHandler似乎只有在您尝试向 Google Ads API 发出服务请求时才需要添加 - 报告请求和响应没有它就可以正常工作。
- 2 回答
- 0 关注
- 202 浏览
添加回答
举报