2 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
問題現(xiàn)在在這里跟蹤。運(yùn)行時(shí)文件夾[FunctionProject]\bin\Debug\netcoreapp2.1\bin\runtimes中的程序集不會(huì)加載到函數(shù)上下文中。
在@Adrian 的幫助下,事實(shí)證明問題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在我們需要運(yùn)行時(shí)程序集時(shí)從 lib 復(fù)制的錯(cuò)誤程序集所致。
解決方法是將這些運(yùn)行時(shí)程序集復(fù)制到bin文件夾以使其由函數(shù)宿主加載。后Google.AdWords安裝24.1.0,右鍵單擊項(xiàng)目,Edit <FunctionProjectName>.csproj添加復(fù)制操作。有了 nuget 包的完整路徑,我們不必先將程序集復(fù)制到我們的項(xiàng)目中。
請(qǐng)注意,一旦我們安裝了新版本的軟件包,這些路徑可能會(huì)改變。
<!-- 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貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
Jerry 描述的相同解決方法將適用于該WinHttpHandler問題。我的 Azure Functions v2 項(xiàng)目文件中有以下內(nèi)容:
<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 發(fā)出服務(wù)請(qǐng)求時(shí)才需要添加 - 報(bào)告請(qǐng)求和響應(yīng)沒有它就可以正常工作。
- 2 回答
- 0 關(guān)注
- 234 瀏覽
添加回答
舉報(bào)