Azure函数编译器问题

时间:2016-12-18 09:10:30

标签: c# azure-functions

我将此帖标题为编译器问题,但无法理解出现了什么问题,请事先考虑以下事项,

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对象应为null,存储中没有任何东西,所以它绝对是空的,不可能是别的什么。

如果我写行,

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

我得到" WTF?"由函数返回,很棒。但如果我这样做,

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

我得到以下内容,

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

发生什么事了?我无法评估GetUser的返回值,任何尝试都会导致此错误,甚至直接在if语句中。

1 个答案:

答案 0 :(得分:2)

典型的,就像往常一样,在我的头撞墙后试图解决问题之后,在论坛上询问后几分钟,我找到了答案。

基本上我用来清除错误的方法是使用Azure Visual Tools for Visual Studio本地尝试该函数。虽然我的函数仍然无法在本地工作,但它确实指出我缺少User类使用的程序集引用。将程序集引用添加到我的Azure功能后,问题就消失了。在这种情况下,它是,

#r "Microsoft.WindowsAzure.Storage"

using Microsoft.WindowsAzure.Storage.Table;

尼克。