【问题标题】:How can I configure network access for the Windows Phone emulator?如何为 Windows Phone 模拟器配置网络访问?
【发布时间】:2012-04-09 16:51:39
【问题描述】:

我正在尝试调试同步生成WebRequest 的应用程序,即:

HttpWebRequest req = WebRequest.Create(new Uri("http://www.stackoverflow.com/")) as HttpWebRequest;

IAsyncResult res = req.BeginGetResponse(callback => { }, req);
while (!res.IsCompleted)
{
    System.Threading.Thread.Sleep(100);
}
// Doesn't matter what's here, as `res.IsCompleted` never returns true

这只是为了检查某些应用程序逻辑是否“正确”,但它会卡住,IAsyncResult 从未报告自己完整。

为了检查,我尝试在模拟器上使用 Internet Explorer,但发现无法找到 任何 网页(包括内置的收藏夹),这让我认为模拟器是试图在我的笔记本电脑上使用特定的网络接口,但似乎没有任何方法可以配置它,或者使用哪个接口?我怀疑它可能正在尝试使用 VPN 接口,或者像 VirtualBox 那样的虚拟适配器。那么,我该如何配置呢?另外,您希望模拟器发出的请求会显示在 Fiddler 中吗?

为了记录,NetworkInterface.GetIsNetworkAvailable() 返回true

更新:

看来更新我的图形驱动程序(以及相关的重新启动)允许模拟器访问真实网络(或至少猜测正确的适配器);但是,res.IsCompleted 仍然没有报告 true(并且 Fiddler 显示请求已完成),所以我有点困惑。

【问题讨论】:

    标签: c# windows-phone-7 fiddler windows-phone-7-emulator


    【解决方案1】:

    您是否使用代理? Windows Phone 模拟器与当前活动的 Internet 连接以及代理设置相关联。确保这些设置正确。此外,可能有防火墙阻止 XDE 访问 Internet - 也请检查设置。

    我会推荐Fiddler。尝试configure it 捕获模拟器流量,看看你能从那里得到什么信息。

    【讨论】:

    • 那么,Fiddler 有什么收获吗?
    • 自从升级我的视频驱动程序后,是的。仍然不确定为什么 res.IsCompleted 在 Windows Phone 上永远不会返回 true。
    • 您的线程模型已关闭。如果您正在等待请求完成,不妨使用您留空的回调 - 当请求完成时它会被触发。
    • 这就是我最终所做的 - res.IsCompleted 确实为“其他平台”返回 true 有点奇怪
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2023-03-07
    • 2023-03-19
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多