【问题标题】:Why HttpRequestException in VS2015 Simulator but not Emulator为什么在 VS2015 模拟器中出现 HttpRequestException 而不是模拟器
【发布时间】:2015-06-12 02:18:50
【问题描述】:

我有一个 WinRt 通用应用程序,并且只使用 VS2015CTP Ultimate(没有第 3 方软件)。 Phone Emulator 连接到 Azure,但 Windows Simulator 需要通过 Http 代理服务器。我不在公司防火墙内。但是,如果我使用 Fiddler 并让应用程序使用它的 Http 代理服务器,那么模拟器就可以工作。 我根本不想使用 Fiddler,所以我的问题是,如何让模拟器在没有 Fiddler 帮助的情况下调用我的 Azure 移动服务?

我认为代码不会有什么不同,因为它对手机和 Windows 都是一样的。但是,这是代码,下面是错误。

    //In Appl.xaml, VS2015 creates this code:

public static Microsoft.WindowsAzure.MobileServices.MobileServiceClient myMobileClient = 
new Microsoft.WindowsAzure.MobileServices.MobileServiceClient(
"https://nameofmobileservice.azure-mobile.net/",
"***************************");


//I added:

private IMobileServiceTable<MyResultData> GetMyResultDataTable()
        {
            IMobileServiceTable<MyResultData> myResultDataTable = null;
            try
            {
                myResultDataTable = App.myMobileClient.GetTable<MyResultData>();
            }
            catch (System.Exception e)
            {

                System.Diagnostics.Debug.WriteLine(e.InnerException);
            }
            return myResultDataTable;
        }


//This is the call that fails in Windows simulator, but works in phone emulator:

 public async Task InsertTacticResultData(MyResultData data)
        {
            IMobileServiceTable<MyResultData> myResultDataTable = GetMyResultDataTable();
   try
            {
                await myResultDataTable.InsertAsync(data);
            }
            catch (System.Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.StackTrace);
                System.Diagnostics.Debug.WriteLine(e.Message);
                System.Diagnostics.Debug.WriteLine(e.InnerException);
            }
        }

错误:发送请求时出错。 “MyUniversal.Windows.exe”(CLR v4.0.30319:沉浸式应用程序 域):已加载 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.DLL'。 System.Net.WebException:无法解析远程名称: 'mymobileservice.azure-mobile.net' 在 System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult、TransportContext& 上下文)在 System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult a) 堆栈跟踪:

类型的第一次机会异常 “System.Net.Http.HttpRequestException”发生在 mscorlib.dll 中 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.<SendRequestAsync>d__1d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d__4.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Microsoft.WindowsAzure.MobileServices.MobileServiceTable.<>c__DisplayClass10.<<InsertAsync>b__f>d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 Microsoft.WindowsAzure.MobileServices.MobileServiceTable.d__41.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Microsoft.WindowsAzure.MobileServices.MobileServiceTable.<InsertAsync>d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 Microsoft.WindowsAzure.MobileServices.MobileServiceTable1.<TransformHttpException>d__38.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 Microsoft.WindowsAzure.MobileServices.MobileServiceTable1.<InsertAsync>d__b.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at Microsoft.WindowsAzure.MobileServices.MobileServiceTable
1.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 MyUniversal.Azure.AzureHelper.d__6.MoveNext()

【问题讨论】:

  • 你的代码是什么?错误是什么?您是否有可能会影响此问题的病毒扫描程序?如果您在本地而不是通过模拟器运行它会起作用吗?模拟器只是一个远程桌面会话,而手机是具有虚拟 NIC 的实际 Hyper-v 实例。
  • 我添加了代码和错误。模拟器可以通过浏览器进行常规调用。不确定您所说的“本地”是什么意思。但是,我可以将其作为 ASP.NET 项目运行,如下所述:msdn.microsoft.com/en-us/library/windows/apps/xaml/…
  • 为什么需要使用代理?
  • 然后代码在模拟器中工作,这基本上就是这篇文章的主题——为什么我需要代理?
  • 一个调试目标选项是“本地机器”。你试过用那个代替模拟器吗?根据您发布的堆栈,DNS/名称解析失败。

标签: azure windows-runtime win-universal-app


【解决方案1】:

基本上我必须运行:Certutil -addStore TrustedPeople See https://msdn.microsoft.com/en-us/library/windows/desktop/jj835832(v=vs.85).aspx

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 2010-12-07
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多