먹는게 남는거다!

PushSharp로 APNs 이용중 오류 해결 - 패키지에 제공된 자격 증명을 인식할 수 없습니다

C#, ASP.NET

System.ComponentModel.Win32Exception: 패키지에 제공된 자격 증명을 인식할 없습니다


PushSharp.Apple.ApnsNotificationException: Apns notification error: 'ConnectionError' ---> System.ComponentModel.Win32Exception: 패키지에 제공된 자격 증명을 인식할 수 없습니다

   위치: System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule, String package, CredentialUse intent, SecureCredential scc)

   위치: System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential& secureCredential)

   위치: System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)

   위치: System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output)

   위치: System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count)

   위치: System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)

   위치: System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)

   위치: PushSharp.Apple.ApnsConnection.<connect>d__25.MoveNext()

--- 예외가 throw된 이전 위치의 스택 추적 끝 ---

   위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   위치: PushSharp.Apple.ApnsConnection.<SendBatch>d__21.MoveNext()

   --- 내부 예외 스택 추적의 끝 ---

   위치: PushSharp.Apple.ApnsServiceConnection.<Send>d__2.MoveNext()



PushSharp을 이용해서 iOS 기기에 푸시를 보낼 때 위와 같은 오류가 발생했습니다.


apple에서 발급 받은 인증서 권한 문제로 보여 구글링을 해보면 다양한 해법이 있습니다.


그 중 대부분이 apple에서 인증서를 발급 받을 때 private만 추출해야 하는데 다 추출해서 발생한 문제입니다.



저 같은 경우는 로컬 컴퓨터에서 테스트시 정상 발송되었기 때문에 인증서 문제는 아니었습니다.


제가 성공한 방법은 PushSharp 샘플처럼 인증서 파일을 직접 사용하는 것이 아니라 저장소에 인증서를 등록하고 불러와서 사용하는 방법입니다.


저장소에 등록한 인증서를 지문(THUMBPRINT)를 통해 가져오는 코드는 아래와 같습니다.



1
2
3
4
5
6
7
8
string thumbprint = "YOUR THUMBPRINT";
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Find(
    X509FindType.FindByThumbprint, thumbprint, validOnly: false)
    .Cast<X509Certificate2>().SingleOrDefault();
var apnsConfig = new ApnsConfiguration(
    ApnsConfiguration.ApnsServerEnvironment.Production, certificate);
cs


출처: https://stackoverflow.com/questions/23329040/pushsharp-apns-production-the-credentials-supplied-to-the-package-were-not-reco



전 인증서를 로컬 컴퓨터에 저장하였기 때문에 위 코드에서 StoreLocation.CurrentUserStoreLocation.LocalMachine 으로 변경하였습니다.


지문(THUMBPRINT)는 인증서를 더블 클릭 후 나오는 인증서창의 자세히탭에서 확인할 수 있습니다.

(단, thumbprint 변수에 지문을 넣을 때는 공백 없이 입력해야 합니다.)

  

 

 

 


[동대문] 사마르칸트 시티(Samarkand City)

먹거리

주말을 맞이하여 새다른 요리를 먹기 위해 찾아간 우즈베키스탄 요리, 사마르칸트 시티입니다.



내부 인터네리어도 우리네 음식점과 달라 이국적인 분위기가 물씬 납니다.


메뉴판에 친절하게 음식 사진과 직관적인(?) 한글명이 있어서 주문하는데


어려움은 없었습니다.


하지만 메뉴마다 양을 몰라 주인분에게 물어보고서야 안심할 수 있었습니다.




맨처음 나온 "전통 우즈벡 빵", "빵속에 고기"


"빵속에 고기"는 크라상 같은 식감의 파이었습니다.


처음 한 입 먹었을 때는 약간 느끼했지만 같이 나온 토마토 베이스 소스와 같이


먹으니 생각보다 괜찮았습니다.


"전통 우즈벡 빵"은 속이 꽉찬 보통 빵이었습니다.


CD보다 큰 크기인데 두명이 먹기에 딱 좋은 양이었는데


나중에 나온 양고기찜 국물을 찍어 먹을려고 주문했습니다.





드디어 나온 오늘의 메인 요리 양고기찜!


양고기 냄새를 걱정했는데 생각보다 냄새도 안 나고 양파와 같이 먹으니 별로 느끼하지 않았습니다.


살코기가 매우 부드러워서 결대로 찢어지는 것이 오래 삶은 쇠고기 찜을 먹는 느낌이었습니다.


특히 국물을 빵에 찍어 먹는 것도 제법 괜찮았습니다.




아쉬운 양고기 스튜


양고기 냄새가 강해서 먹는게 쉽지 않았습니다.


그나마 "빵속에 고기"와 같이 나온 소스를 넣으니 먹을만 했습니다.


냄새에 민감한 분이라면 추천하지 못할 것 같습니다.



이번에는 주문하지 않았지만 다음 번에 방문하면 양고기 꼬치를 먹어볼 생각입니다.


중국집에서 파는 작은 양꼬치가 아니라 큼지막한 고기 덩어리들이 끼워진 꼬치인데


배부른 상태인대도 더 시킬까 하는 생각이 들 만큼 맛있어 보였습니다.



전체적으로 음식도 괜찮고 친절한 집이지만 그 근처에 비슷한 집들이 많이 있어서


다음 번에는 다른 집을 도전해 봐야겠습니다.





'먹거리' 카테고리의 다른 글

[군자역] 호남집, 뼈해장국  (0) 2017.11.12
[군자역] 우렁쌈밥  (0) 2016.11.27
[군자역] 홍스시  (0) 2016.08.15
[군자역] 꿀쌈함흥면옥  (0) 2016.07.27
[이수역] 누룽지닭굼터, 누룽지불닭  (0) 2016.07.19

[군자역] 우렁쌈밥

먹거리


백반집을 찾아 동네를 누비던 중에 찾은 집입니다.


원래 이 앞을 자주 지나다녔지만 들어가 볼 생각은 못 했던 집인데 갑자기 우렁쌈밥이 땡겨서 들어가 보았습니다.




김치찌개, 제육볶음, 갈치조림 등 일반 백반집과 비슷한 메뉴뿐만 아니라 뼈다귀 해장국, 다슬기 해장국, 우렁쌈밥 등 


왠지 전문점을 가야할 것 같은 메뉴도 있습니다.


큰 기대가 되지 않았지만 일단 우렁쌈밥을 주문했습니다.




입이 딱 벌어지는 한상 차림에 한번 놀라고


요즘처럼 야채가 비싼 시기에 풍성한 야채에 또 놀라게 됩니다.


그리고 반찬 하나 하나 맛이 나쁘지 않습니다.


제육볶음과 고등어 조림도 맛있습니다.


혼자 갈 때는 제육볶음이나 고등어 조림 단품을 시켜도 될 것 같습니다.




우선 제가 한 쌈 먹어보겠습니다.