需要从我的Mac OS X主机访问我的VM Windows 8本地IIS

时间:2015-07-11 17:50:09

标签: iis virtual-machine azure-mobile-services

我在Mac OS X(Xamarin Studio或本地语言)上进行所有移动开发,并使用Parallels在Visual Studio中使用Microsoft Azure移动服务后端。 我已经到了想测试Azure Mobile API的地步,但我不想为每次更改发布服务并调试它。

我的问题是我部署到我的IIS,快递或本地,在我的Mac物理主机上查看API的土地页面方面工作得很好但是一旦我点击试试它我得到一个验证消息,检查屏幕截图,我不想立即应用任何安全性。

如何禁用它并从我的Mac测试我的Azure移动服务API,最终从我的移动项目中测试。

IIS Authentication Message

[编辑]

我应该提一下,从我的VM Windows 8中,IIS运行正常,我可以在没有任何用户名/密码的情况下访问API。

[编辑2]来自@lindydonna回答。

代理似乎工作正常,因为从我的Mac我可以调用localhost / MyApiService并将其转到我的Windows 8 VM本地IIS服务器。

所以我可以访问API服务器,所有控制器及其端点,您选择一个端点并获取示例屏幕,单击试一试并无法完成HTTP请求,404 / NotFound错误。见截图。

gist中的GET请求的BODY。

Try endpoint fails with 404/Not Found

以上是本地IIS设置中的问题,因为在尝试Azure移动服务测试页时,Windows 8 VM环境中也存在相同的行为。

我使用Postman工作,它正确返回JSON数据,iOS模拟器似乎不能与localhost一起使用。尝试拉取时,MobileServiceContext会抛出异常。

System.Net.WebException

protected virtual async Task PullAsync (IMobileServiceTableQuery<TEntity> query)
{
    try {
        await Initialization;
        IMobileServiceSyncTable<TEntity> entityTable = GetTable ();
        await entityTable.PullAsync (typeof(TEntity).ToString (), query); // <-- The System.Net.WebException thrown here.
        await entityTable.PurgeAsync ();
    } catch (MobileServiceInvalidOperationException preconditionFailedEx) {
            Debug.WriteLine(preconditionFailedEx.Message);
    }
}

2 个答案:

答案 0 :(得分:5)

问题是您的IIS Express实例配置为不接受外部网络连接作为安全预防措施,Parallels VM被视为不同的计算机。

最简单的解决方案是遵循这个Fiddler教程:Configure Fiddler for Mac,它将Fiddler设置为VM上的代理。

然后,在Mac上,您应修改网络设置并添加连接到Fiddler代理(http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForMac#configure-mac-)的代理设置。您的iOS模拟器将获取这些代理设置。

注意:Fiddler设置会在VM上打开一个端口,一旦您不再使用它,就应该关闭它,作为安全预防措施。

此外,根据此回复(iOS 8 / Xcode 6 Simulator is not using HTTP Proxy anymore),您还需要重新启动iOS模拟器,以便它获取新设置。

答案 1 :(得分:0)

将用户名留空,并使用您的应用程序或万能密钥作为密码。

此处也回答:Authentication for Azure Mobile Web Services test pages