我創建了一個Azure的功能,我在本地運行它:Azure的功能模型綁定
[FunctionName("HttpTriggerCSharpSet")]
public static async Task<HttpResponseMessage> Set([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] MyDocument req, TraceWriter log)
{
// ...
}
注意MyDocument
是第一個參數,而不是HttpRequestMessage
。我讀過,這種方法應該工作的文件中,它似乎非常相似,ASP.NET模型綁定(在我的腦海裏,反正)。 MyDocument
是POCO只有3個屬性。
public class MyDocument
{
public string Name { get; set; }
public int ShoeSize { get; set; }
public decimal Balance { get; set; }
}
當我發佈到像這樣的功能(我使用郵差):
我得到一個錯誤信息:[8/8/2017 2:21:07 PM] Exception while executing function: Functions.HttpTriggerCSharpSet. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'req'. System.Net.Http.Formatting: No MediaTypeFormatter is available to read an object of type 'MyDocument' from content
(你也可以看到郵差的屏幕截圖以上)
我試過表單數據和X WWW的形式,進行了urlencoded,甚至從郵差,同樣的錯誤每次生。我也試着切換回HttpRequestMessage
和使用req.Content.ReadAsAsync<MyDocument>
,我也得到了類似的錯誤。我是構建我的帖子有誤,還是我不正確寫我Azure的功能。無論哪種情況,正確的方法是什麼?
它必須是已提交到Azure的功能JSON?表格編碼不起作用?是否記錄在某處我沒有注意到? –
(它的工作原理,僅供參考) –