我将此帖标题为编译器问题,但无法理解出现了什么问题,请事先考虑以下事项,
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语句中。
答案 0 :(得分:2)
典型的,就像往常一样,在我的头撞墙后试图解决问题之后,在论坛上询问后几分钟,我找到了答案。
基本上我用来清除错误的方法是使用Azure Visual Tools for Visual Studio本地尝试该函数。虽然我的函数仍然无法在本地工作,但它确实指出我缺少User类使用的程序集引用。将程序集引用添加到我的Azure功能后,问题就消失了。在这种情况下,它是,
#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Table;
尼克。