我遵循了指南:
使用Mobile Services .NET for Windows Store进行身份验证入门
只要我不需要对用户进行身份验证,我就可以在本地运行该服务.如果我将服务发布到Azure,我也可以对用户进行身份验证.但我希望能够在本地测试和验证用户.如何才能做到这一点?
我正在使用Live ID,并且我在Web.config中设置了正确的ClientID和ClientSecret.当我尝试从客户端调用LoginAsync时,调用失败,无法完成请求.(不允许的方法)
**更新2014-03-20**
根据Carlos和Henrik的评论,我已将本地服务更新为与我的服务器实例完全相同.我跟随Scot Hanselmans 出色的指南,现在我的服务在端口80 和端口443 本地运行,并且具有完全有效的SSL证书.它甚至运行在完全相同的https://xxxx.azure-mabile.net主机名上.
通过这些更改,现在在针对我的本地计算机运行应用程序或针对Azure运行应用程序之间没有任何配置差异.我可以在浏览器中访问https://xxxx.azure-mabile.net,重定向到Live登录,登录,然后成功重定向回服务.在浏览器中一切正常.但它仍然无法在应用程序中工作.
我附加了调试器,将CLR错误设置为"抛出时中断",并设法在服务中捕获异常.这是我在即时窗口中看到的内容:
Response属性没有帮助.它不提供有关该问题的任何其他信息.
唯一突出的是应用程序尝试对/ login/microsoftaccount进行POST,而浏览器通常会在此地址执行GET(然后重定向).
**更新#2 2014-03-20**
以下Henriks指南后,远程调试,我能够加载符号,并得到一个微小的更多比特的信息:
"现有连接被远程主机强行关闭"
错误代码为10054(WSAECONNRESET)由对等方重置连接.
现在,Live Authentication服务器可能会强制终止连接,但只有在我使用应用程序进行身份验证时才会这样.同样,浏览器中的身份验证也很好.这与/ login/microsoftaccount是来自应用程序的POST 的事实相结合似乎表明我从LiveClient.LoginAsync返回的身份验证令牌存在问题.我会做更多的挖掘......