2017-04-08 11 views
2

Azureの機能を使用しているとき、私はSystem.Net.Http図書館とのトラブルのかなり多くを抱えています。ポータルにまったく新しいhttptrigger関数を作成してもうまくいきます。しかし、私は自分のprecompiled assemblyを使用します。私がこれをすると、私はあらゆる種類の問題を抱えています。私が見ているAzureの機能 - System.Net.Http

一つの症状がで渡されるHttpRequestMessageが、それには詳細を持っていないということです。 RequestUriは空で、他のプロパティのいずれかを加えたものです。ヘッダーなどがあります。パラメータはnullではないことに注意してください。何も入力されていないようです。

別の症状は、それがGetQueryNameValuePairsを呼び出そうとした場合、それは言って失敗したということです。

以下
Exception while executing function: Functions.WebHookSync. mscorlib: Exception has been thrown by the target of an invocation. MyFunctionName.Functions: Method not found: 'System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<System.String,System.String>> System.Net.Http.HttpRequestMessageExtensions.GetQueryNameValuePairs(System.Net.Http.HttpRequestMessage)'. 

は私.csprojファイルの内容です:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>net46</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.3" /> 
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="2.0.0" /> 
    </ItemGroup> 

    <ItemGroup> 
    <ProjectReference Include="..\MyOtherAssembly\MyOtherAssembly.csproj" /> 
    </ItemGroup> 
</Project> 

Microsoft.AspNet.WebApi.Core nugetパッケージはsystem.net.httpが含まれていますライブラリ。私はこれに関連するさまざまなナゲットパッケージの様々な組み合わせを試みましたが、運がありません。誰もが、私はこの作業を取得するために使用すべきかのパッケージ

を知っていますか?ここで

答えて

1

System.Net.HttpのMissingMethodExceptionsに問題がありました。私のために働いたのは次のようなリファレンスでした:

<package id="System.Net.Http" version="4.0.0" targetFramework="net461" /> 
+0

これはうまくいきました。残念ながら、これにはGetQueryNameValuePairsメソッドが含まれていないため、正規表現を使用してクエリ文字列を解析しています。また、チェーンの依存関係のエラーが発生なったとして(.NETコアから)46にすべての私の他のライブラリをダウングレードする必要がありました。うまくいけば、Azure関数は.NET Coreをすぐにサポートします(https://github.com/Azure/Azure-Functions/issues/98)。 – Dan

1

は、関数の実行時におけるSystem.Net.Http referencesです。

プリコンパイル済みプロジェクトに直接追加しようとすると追加することをお勧めします。

試してみるべきhttpトリガーを持っている、あらかじめコンパイルされた関数サンプルの例です(12)。

関連する問題