Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法解析远程名称:';api.parse.com';_.net_Windows Runtime_Parse Platform - Fatal编程技术网

.net 无法解析远程名称:';api.parse.com';

.net 无法解析远程名称:';api.parse.com';,.net,windows-runtime,parse-platform,.net,Windows Runtime,Parse Platform,我正在.NET通用应用程序中使用解析API。我已将解析库添加到PCL中,然后将.NET WinRT库与实际的Windows RT项目一起包含。以下是我的服务电话 public async Task<IEnumerable<BasicTask>> GetTasksAsync() { ParseQuery<ParseObject> query = ParseObject.GetQuery(typeof(BasicTask).Name); IEnum

我正在.NET通用应用程序中使用解析API。我已将解析库添加到PCL中,然后将.NET WinRT库与实际的Windows RT项目一起包含。以下是我的服务电话

public async Task<IEnumerable<BasicTask>> GetTasksAsync()
{
    ParseQuery<ParseObject> query = ParseObject.GetQuery(typeof(BasicTask).Name);
    IEnumerable<ParseObject> parseObjects = await query.FindAsync();

    // Convert the parse objects returned from the cloud into our local model representation.
    // We do this in order order to maintain support for the model across multiple cloud services
    // instead of restricting ourselves to the entire app using ParseCloud only.
    return parseObjects.Select(po => this.ConvertParseObjectToDutyTask(po));
}
我从Parse中取回所有记录(仅1个atm)

当我在Windows App Store应用程序中使用相同的方法时,我得到一个
无法解析远程名称:“api.parse.com”
异常。目前,我正在页面加载事件中调用它。事件处理程序在我的视图模型中调用一个initialize方法,该方法要求存储库执行所有任务。存储库从服务获取任务并返回它

页面

private async void pageRoot_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    if (!(this.DataContext is MainPageViewModel))
    {
        return;
    }
    var vm = this.DataContext as MainPageViewModel;
    await vm.Initialize();

    this.TasksList.ItemsSource = vm.Tasks;
}
查看模型

public async Task Initialize()
{
    try
    {
        IEnumerable<BasicTask> tasks = await this.repository.GetTasksAsync();
        this.tasks = new ObservableCollection<BasicTask>(tasks);
    }
    catch (Exception)
    {
        throw;
    } 
}
有人知道为什么它在单元测试中运行良好,但在应用程序中却无法访问服务吗?我使用的异步模式是否错误?我不确定这是否会影响它,因为异常发生在调用解析服务时

编辑

为了澄清,我有一个WinRT项目,它引用了一个通用PCL存储库库和一个通用PCL服务库。调用
后立即等待query.FindAsync()它失败了。我的单元测试是一个标准的Windows单元测试项目,它引用了完全相同的两个PCL库。两者之间的唯一区别是一个是WinRT,另一个是标准的Windows单元测试。两者都使用相同的库,并且都使用async进行调用。这两个库的目标都是Windows 8、Windows Phone 8和.NET 4.5

我是否必须授予我的应用程序特殊权限才能允许在WinRT设备上进行网络访问


任何帮助都会很棒

我终于解决了这个问题。您必须修改Package.appxmanifest文件,以告知设备应用程序需要出站internet权限。这解释了为什么单元测试有效而应用程序无效


当我在应用程序上启用internet权限时,网络呼叫成功,我从Parse返回了数据。我希望这个框架会抛出一个
InternetCapabilityNotSet
异常之类的东西。当没有设置正确的功能时,它当前正在抛出的任何内容。

您是否有可能使用代理?很明显,您的应用程序无法解析api.parse.com名称。正如@YuvalItzchakov所言,这可能是一个代理问题。您可能想使用Fiddler查看您的请求/响应。我不是通过代理。正如我提到的,单元测试通过了,但应用程序失败了。两者都在同一台机器上,采用相同的解决方案。所以我不知道为什么应用程序不能解决它。
public async Task Initialize()
{
    try
    {
        IEnumerable<BasicTask> tasks = await this.repository.GetTasksAsync();
        this.tasks = new ObservableCollection<BasicTask>(tasks);
    }
    catch (Exception)
    {
        throw;
    } 
}
    public async Task<IEnumerable<BasicTask>> GetTasksAsync()
    {
        IEnumerable<BasicTask> tasks = await this.service.GetTasksAsync();

        return tasks;
    }
System.Net.Http.HttpRequestException was unhandled by user code
  HResult=-2146233088
  Message=An error occurred while sending the request.
  Source=mscorlib
  StackTrace:
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
       at Parse.PlatformHooks.<RequestAsync>d__0.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at Parse.Internal.InternalExtensions.<>c__DisplayClass7`1.<OnSuccess>b__6(Task t)
       at System.Threading.Tasks.ContinuationResultTaskFromTask`1.InnerInvoke()
       at System.Threading.Tasks.Task.Execute()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at Parse.Internal.InternalExtensions.<>c__DisplayClass7`1.<OnSuccess>b__6(Task t)
       at System.Threading.Tasks.ContinuationResultTaskFromTask`1.InnerInvoke()
       at System.Threading.Tasks.Task.Execute()
    --- 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`1.GetResult()
       at Duty.Services.ParseCloud.ParseCloudTaskService.<GetTasksAsync>d__1.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`1.GetResult()
       at Duty.Repositories.Tasks.BasicTaskRepository.<GetTasksAsync>d__0.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`1.GetResult()
       at Duty.WindowsAppStore.ViewModels.MainPageViewModel.<Initialize>d__0.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 Duty.WindowsAppStore.Views.MainPage.<pageRoot_Loaded>d__0.MoveNext()
  InnerException: System.Net.WebException
       HResult=-2146233079
       Message=The remote name could not be resolved: 'api.parse.com'
       Source=System
       StackTrace:
            at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
            at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
       InnerException: