2016-12-18 39 views
0

我已經題爲這篇文章作爲編譯器的問題,但可能不明白什麼錯,可考慮提前以下,Azure的功能編譯器問題

System.Security.Claims.ClaimsPrincipal pCPlFacebookUser = System.Security.Claims.ClaimsPrincipal.Current; 
String pStrEmail = pCPlFacebookUser.FindFirst(System.Security.Claims.ClaimTypes.Email).Value; 
Storage pStoMembership = new Storage("TableStorageRootURL", "AzureWebJobsStorage", "ServiceInfo"); 
User pUsrUser = pStoMembership.GetUser(pStrEmail); 

這工作得很好,功能正常繼續,在這一點上並且在這個狀態下,我的pUsrUser對象應該是空的,存儲中沒有任何東西,所以它絕對是空的,不能是其他任何東西。

如果我寫行,

return(req.CreateResponse(HttpStatusCode.OK, "WTF?")); 

我得到 「跆拳道?」由功能返回,很好。但是,如果我這樣做,

if(pUsrUser == null) 
{ 
    return(req.CreateResponse(HttpStatusCode.OK, "WTF?")); 
} 

我得到以下,

{"Message":"An error has occurred."} 

這是怎麼回事?我無法評估GetUser的返回值,如果嘗試這樣做會導致此錯誤,甚至直接在if語句中。

回答

2

典型的,像往常一樣,在我的頭靠在牆上試圖解決問題之後,在詢問論壇後幾分鐘,我找到了答案。

基本上我所做的刷新錯誤是嘗試本地使用Visual Studio的Azure功能工具的功能。雖然我的功能仍然不能在本地工作的另一個原因,它確實指出我缺少用戶類使用的程序集引用。將該程序集引用添加到我的Azure函數後,問題就消失了。在這種情況下,它是,

#r "Microsoft.WindowsAzure.Storage" 

using Microsoft.WindowsAzure.Storage.Table; 

尼克。

+1

我認爲發生了什麼事是你有一個編譯錯誤,你沒有看到在日誌中。你的回答只是說有一個錯誤,但在完整的細節中應該有一個編譯堆棧跟蹤。我們將改進一些事情,以便編譯錯誤進入另一個窗口,而且很難錯過。 –

+0

這聽起來像一個很棒的變化 – Nick