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

Geo*_*kos 0 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身份验证消息

[编辑]

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

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

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

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

这个要点中的GET请求的BODY .

尝试端点失败,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);
    }
}
Run Code Online (Sandbox Code Playgroud)

lin*_*nna 5

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

最简单的解决方案是遵循这个Fiddler教程:配置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不再使用HTTP代理),您还需要重新启动iOS模拟器,以便它获取新设置.