Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio WNS推送通知在调试模式下失败,出现错误:从令牌提供程序获取的令牌错误_Visual Studio_Cordova_Azure_Wns - Fatal编程技术网

Visual studio WNS推送通知在调试模式下失败,出现错误:从令牌提供程序获取的令牌错误

Visual studio WNS推送通知在调试模式下失败,出现错误:从令牌提供程序获取的令牌错误,visual-studio,cordova,azure,wns,Visual Studio,Cordova,Azure,Wns,我有一个非常简单的Cordova应用程序,带有推送通知。我正在使用VS2015更新1和最新的Cordova工具集(更新7)以及正确设置的Azure应用程序服务。当我通过VS运行Win10 x64版本的应用程序时,我会收到预期的推送通知。但是,当我运行同一应用程序的调试版本(没有源代码更改)时,我不会收到推送通知,发送方会收到错误: 从令牌提供程序获取的令牌错误 这两个应用程序都是Windows 10,在本地计算机x64(不是模拟器)上运行 这种行为是不一致的。我还有另一个VS2015 Cordo

我有一个非常简单的Cordova应用程序,带有推送通知。我正在使用VS2015更新1和最新的Cordova工具集(更新7)以及正确设置的Azure应用程序服务。当我通过VS运行Win10 x64版本的应用程序时,我会收到预期的推送通知。但是,当我运行同一应用程序的调试版本(没有源代码更改)时,我不会收到推送通知,发送方会收到错误:

从令牌提供程序获取的令牌错误

这两个应用程序都是Windows 10,在本地计算机x64(不是模拟器)上运行

这种行为是不一致的。我还有另一个VS2015 Cordova项目,它在发布和调试模式下都可以很好地处理推送通知


VS或Azure中是否缺少控制此行为的某些设置?

经过一天的挫折,我确定了调试和发布Windows应用商店软件包之间的VS2015行为差异。这可能是在Apache工具集的更新7中引入的

简而言之,VS2015未使用Windows应用商店发布者ID对调试包进行签名。这会导致某些功能(如推送通知)无法工作。要解决此问题,请编辑Cordova项目的build.json文件,并为调试版本添加一个条目,强制VS使用您的Windows应用商店发布者证书。完成后,该文件应如下所示(我的文件缺少调试部分)-当然,将您的Windows应用商店发布ID放入占位符中:

{
“窗口”:{
“释放”:{
“packageCertificateKeyFile”:“res\\native\\windows\\CordovaApp.pfx”,
“publisherId”:“CN=”
},
“调试”:{
“packageCertificateKeyFile”:“res\\native\\windows\\CordovaApp.pfx”,
“publisherId”:“CN=”
}
}
}

在一天的挫折之后,我确定了调试和发布Windows应用商店软件包之间的VS2015行为差异。这可能是在Apache工具集的更新7中引入的

简而言之,VS2015未使用Windows应用商店发布者ID对调试包进行签名。这会导致某些功能(如推送通知)无法工作。要解决此问题,请编辑Cordova项目的build.json文件,并为调试版本添加一个条目,强制VS使用您的Windows应用商店发布者证书。完成后,该文件应如下所示(我的文件缺少调试部分)-当然,将您的Windows应用商店发布ID放入占位符中:

{
“窗口”:{
“释放”:{
“packageCertificateKeyFile”:“res\\native\\windows\\CordovaApp.pfx”,
“publisherId”:“CN=”
},
“调试”:{
“packageCertificateKeyFile”:“res\\native\\windows\\CordovaApp.pfx”,
“publisherId”:“CN=”
}
}
}
{
  "windows": {
    "release": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    },
    "debug": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    }
  }
}