从Windows 8.1应用程序通过http连接到本地托管的Azure移动服务

时间:2014-05-22 17:15:28

标签: c# azure ssl azure-mobile-services windows-phone-8.1

我在Windows 8应用程序中没有遇到任何问题但是只是在我尝试8.1通用应用程序时才开始看到这种行为......

我很清楚如何做到这一点

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx

我有我的IIS Express实例设置,我知道我可以通过IP从我的Windows手机和Windows应用商店访问我本地托管的Azure移动服务....如果我去WP8.1模拟器上的浏览器我能够导航到我的开发机器上托管的移动服务站点。

在Windows 8.1应用程序中虽然如果我尝试使用IIS Express的非SSL URI,那只是http

  new MobileServiceClient("http://IISEXPRESS");

然后我收到此错误“{”仅允许https方案。\ r \ n“}”“ 在Windows.Security.Authentication.Web.WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions选项,Uri requestUri,Uri callbackUri)    在Microsoft.WindowsAzure.MobileServices.AuthenticationBroker.d__4.MoveNext()

如果我切换到使用https,那么它永远无法建立连接。

new MobileServiceClient("https://IISEXPRESS");

我很确定访问IISEXPRESS用于测试https的证书是一个问题...因为如果我将我的应用程序作为8.1商店应用程序运行,那么我会遇到同样的问题。但是,如果我启动Fiddler,然后运行我的8.1商店应用程序,那么它就能够成功使用MobileServiceClient而不是https ...我非常确定这是因为fiddler代理了https流量,所以它可以使证书有效。 ..例如,如果我在没有fiddler的情况下导航到IE中的https url,我会收到CERT警告,但如果我有fiddler,那么我就不会收到CERT警告..

此代码几乎与我在Windows Phone 8应用程序上运行的代码完全相同,该应用程序能够使用“http”并且我能够在本地进行测试而不会出现任何问题...

如果我将我的移动服务发布到Azure,那么我的所有代码也可以正常工作....

有没有办法告诉MobileServiceClient Web身份验证代理可以使用http,因为它连接到开发盒?我是否需要这样做,以便应用程序可以使用IISExpress生成的证书?

提前谢谢

0 个答案:

没有答案