Visual Studio 2017 15.3がインストールされており、Azure Developmentワークロードがインストールされています。HttpトリガーAzure関数のデバッグVS 2017
私はこの記事によると、ブランクHttpTrigger
を作成しました:
を私はパラメータクエリ文字列としてName
を使用する場合、私が正常にデバッグすることができます。私はこのPOSTリクエストを作成するために郵便配達を使用している場合
はしかし、:
{
"name": "Azure"
}
を私は次のエラーを取得する:ここで
"mscorlib: Exception while executing function: HttpTrigger . Anonymously Hosted DynamicMethods Assembly: 'Newtonsoft.Json.Linq.JObject' doe s not contain a definition for 'name'."
は、Visual Studio 2017での機能のアプリのために私のコードです:
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
namespace VS2017TestFunctionApp
{
public static class HttpTrigger
{
[FunctionName("HttpTrigger")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
// Set name to query string or body data
name = name ?? data?.name;
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
}
}
また、実行関数内で全く同じコードをコピーし、同じテストポストをaf Azureのポータルを介してすべての正常に動作します。
あなたは「名前」に、あなたのブレークポイントから次の行に移動する場合は、エラーを取得する必要があります。 – Stanza
また、Run関数内で全く同じコードをコピーし、同じテストポストをAzureポータル経由で関数アプリケーションで使用すると、すべて正常に動作します。 – Stanza
''あなたがブレークポイントから '名前'に次の行に移動すると、エラーが発生するはずです.''私はエラーを取得しません。コードは正常に動作します。 –