2016-12-18 4 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 должен быть нулевым, в хранилище ничего нет, поэтому он определенно null, не может быть чем-то еще.

Если я пишу строку,

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

я получаю "WTF?" возвращенный функцией, отлично. Но если я это сделаю,

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

Я получаю следующее,

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

Что происходит ?? Я не могу оценить возвращаемое значение из GetUser, любая попытка сделать это приводит к этой ошибке, даже непосредственно в выражении if.

ответ

2

Типичный, что, как обычно, после того, как я ударил головой о стену, чтобы попытаться что-то решить, через несколько минут после того, как вы спросили на форуме, я нахожу ответ.

В основном, что я сделал, чтобы очистить ошибку, было попробовать эту функцию локально с помощью Azure Function Tools для Visual Studio. Хотя моя функция по-прежнему не работает локально по другой причине, она указала, что мне не хватает ссылки на сборку, используемой классом User. После добавления ссылки на мою Azure Function проблема исчезла. В этом случае это было

#r "Microsoft.WindowsAzure.Storage" 

using Microsoft.WindowsAzure.Storage.Table; 

Nick.

+1

Я думаю, что произошло то, что у вас была ошибка компиляции, которую вы не видели в журналах. В вашем ответе просто говорилось, что произошла ошибка, но в подробных деталях должна была быть сборка stacktrace. Мы собираемся улучшить ситуацию, чтобы ошибки компиляции переходили в другое окно, и их сложнее пропустить. –

+0

Это звучит как потрясающее изменение – Nick