푸시 알림을 사용하는 Windows Phone 7 응용 프로그램을 작성 중이며, MS Notification Server와 내 서비스 간의 상호 작용을 관리하는 클래스가 있습니다. 구름. 그러나 장치에서 채널을 열려고 시도 할 때 HttpNotificationChannel이 "채널을 열지 못했습니다."라는 메시지와 함께 InvalidOperationException을 던지고 있습니다. MSDN에 따르면 채널을 다시 열어 봐야합니다.HttpNotificationChannel Open() throw InvalidOperationException ("채널 열기 실패")
푸시 알림을 열려면 내 스 니펫이 다음과 같은 표준 패턴을 따르고 있습니다.
public class HttpNotification {
private const string kChannelName = "MyApp.PushNotification";
private HttpNotificationChannel _Channel;
public void Register() {
try {
_Channel = HttpNotificationChannel.Find(kChannelName);
if (_Channel == null) {
_Channel = new HttpNotificationChannel(kChannelName);
InstallEventHandlers();
// This line throws
_Channel.Open();
} else {
InstallEventHandlers();
};
} catch (InvalidOperationException ex) {
MessageBox.Show(string.Format("Failed to initialise Push Notifications - {0}", ex.Message));
};
}
}
"채널을 다시 열어보십시오."라는 MSDN의 의미는 정확히 모르겠습니다. 나는 시도/catch에서 Open()에 대한 호출을 감싸고 시도 사이에 5 초 동안 멈추지 만 성공하지는 않습니다. 나는 또한 전체 메소드 (즉, HttpNotificationChannel.Find()를 호출 할 때마다 호출)를 사용하여 동일한 접근법을 시도했다.
나는 이것이 약간 모호하다는 것을 알고있다 - 그러나 이것을 처리하는 것에 대한 제안이 있다면 궁금해하고 있 었는가? 이 동일한 코드는 에뮬레이터에서 완벽하게 작동하지만 응용 프로그램을 제거하고 다시 설치 한 후에도 실제 장치에서 매번 실패합니다. 이것이 내 실제 전화 인 것을 감안할 때 하드웨어 문제를 해결하기 위해 약간의 노력을 기울여야하며,이 문제로 인해 시장에 응용 프로그램을 공개하는 것이 쉽지 않을 것입니다.
업데이트 : 추가 포인트, 인증되지 않은 채널을 사용하고 있으므로 클라우드 기반 서비스에 인증서가 설치되어 있지 않습니다.
업데이트 # 2 : 더 나아가 Microsoft 전화 푸시 래서 피를 내 장치에 배치하려고 시도한 결과 동일한 예외가 발생했습니다. 이미 이러한 시도하지 않은
그래 찾고있는 것 - 나는 비행기 모드로 내 장치를 설정하고 내 무선 랜에 연결하려고했습니다 내 3G 데이터 제공 업체가 문제를 일으키지 않도록 보장해야합니다. – MrMDavidson
명확히하기 위해 Find() 메소드는 WP7'HttpNotificationChannel' 클래스에서 제공되는 정적 메소드입니다. 채널의 스토리지를 명시 적으로 수행하지는 않습니다. 또한 앱을 다시 설치 한 후에도 계속 유지되므로 느린 채널이 있어서는 안됩니다. 또한 채널 닫기(), 앱 재시작 및 도움이되는지 확인했습니다. 주사위가 없다. 인증되지 않은 채널을 사용하고 있습니다 (예 : 인증서가 필요 없음). 그래서 3이 종료되었습니다. 에뮬레이터에서 생성 프로세스는 완벽하게 작동하므로 # 4에 대해 모호하지만 단계별로 다시 진행됩니다. – MrMDavidson
이 문제가 해결 되었습니까? – curiosity