尝试从公司域访问Internet时,System.Net.HttpClient引发COMException

时间:2018-10-11 19:32:41

标签: c# xamarin.forms uwp dotnet-httpclient xamarin.uwp

我正在使用Xamarin.Forms编写我的第一个UWP应用程序(仅适用于Windows 10)。 我编写了以下测试类,以确保可以从我的应用程序连接到互联网:

public class NetworkInterface
{
    private static readonly System.Net.Http.HttpClient WebClient = new HttpClient();

    private void Get()
    {
        try
        {
            var response = WebClient.GetAsync($"https://google.com/foo").Result;
        }
        catch (Exception e)
        {
            Debug.WriteLine("Error: " + e);
        }
    }
}

我希望我会收到对此查询的404响应,但我收到以下消息:

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Runtime.InteropServices.COMException: The text associated with this error code could not be found. A connection with the server could not be established

我知道这个问题之前已经提出过几次,答案通常是作者没有启用某些UWP功能。我试图通过启用所有可用功能来消除这一潜在障碍。在我的Package.appxmanifest中:

<Capabilities>
    <Capability Name="internetClient" />
    <Capability Name="internetClientServer" />
    <Capability Name="privateNetworkClientServer" />
    <Capability Name="codeGeneration" />
    <Capability Name="allJoyn" />
    <uap:Capability Name="enterpriseAuthentication" />
    <uap4:Capability Name="userDataTasks" />
    <uap:Capability Name="voipCall" />
    <uap:Capability Name="videosLibrary" />
    <uap3:Capability Name="userNotificationListener" />
    <uap:Capability Name="userAccountInformation" />
    <iot:Capability Name="systemManagement" />
    <uap2:Capability Name="spatialPerception" />
    <uap:Capability Name="sharedUserCertificates" />
    <uap:Capability Name="removableStorage" />
    <uap3:Capability Name="remoteSystem" />
    <mobile:Capability Name="recordedCallsFolder" />
    <uap:Capability Name="picturesLibrary" />
    <uap2:Capability Name="phoneCallHistoryPublic" />
    <uap:Capability Name="phoneCall" />
    <uap4:Capability Name="offlineMapsManagement" />
    <uap:Capability Name="objects3D" />
    <uap:Capability Name="musicLibrary" />
    <iot:Capability Name="lowLevelDevices" />
    <uap:Capability Name="contacts" />
    <uap:Capability Name="chat" />
    <uap:Capability Name="blockedChatMessages" />
    <uap:Capability Name="appointments" />
    <uap3:Capability Name="backgroundMediaPlayback" />
    <uap6:Capability Name="graphicsCapture" />
    <DeviceCapability Name="webcam" />
    <DeviceCapability Name="proximity" />
    <DeviceCapability Name="pointOfService" />
    <DeviceCapability Name="microphone" />
    <DeviceCapability Name="location" />
    <DeviceCapability Name="gazeInput" />
    <DeviceCapability Name="bluetooth" />
  </Capabilities>

但是,据我了解,我仅需要“ internetClient”功能来实现通过Internet访问API的预期用途。

这里还有一些其他的皱纹:

  1. 当我禁用以太网连接时,我成功收到404 并连接到wifi。如果我通过wifi连接到VPN, 域我再次得到例外。
  2. 在邮递员中运行相同的查询 (即使针对我尝试访问的真实API),无论 网络/域连接。

我的直觉是UWP缺少我的域网络不知道的某种授权或功能。感谢您的任何建议!

0 个答案:

没有答案