2016-07-11 9 views
0

に私は新しいWebapi2プロジェクトを作成していると私はこのコードを使用して外部Webサービスを呼び出すためにしようとしています使用:HttpClientを新しいWEBAPIプロジェクト

WebServiceAuthResult authResult = new WebServiceAuthResult(); 
using (var httpClient = new HttpClient()) 
{ 
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); 
    try 
    { 
     var response = await httpClient.PostAsync(url, null); 

     var responseContent = await response.Content.ReadAsStringAsync(); 
     authResult = JsonConvert.DeserializeObject<WebServiceAuthResult>(responseContent); 
    } 
    catch (Exception ex) 
    { 
    } 
} 

私はこのエラーを取得しています:

Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

私はUWPプロジェクトでまったく同じコードを使用していますが、それは完全に動作します - 私はプロジェクトの設定に何か間違っていると推測しています。

私はこれに関するGoogleやその他のStackOverflowの質問を見てきましたが、すべてWebサービスの問題を示唆していますが、私がUWPプロジェクトを使ってテストできるようになっています。

誰でも私に何か試してみることができますか?

+0

コードはローカルでは動作しますが、デプロイされたサーバーでは機能しない場合は、デプロイされたサーバーのポリシーに関連付けることができます。 –

+0

サービスはどのように展開されていますか? 自己ホストされている場合は、サービスが使用するアカウントに問題がある可能性があります。 https://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount(v=vs.110).aspx – lavuy

+0

私は現時点ではローカルでテストするだけです。私のUWPアプリケーションは、Windows Phoneエミュレータを使用してローカルでも実行されています。 Webサービスの基本設定を有効にしましたか? – Rick

答えて

1

通常、これらの質問の場合、答えは1つのライナーですが、解決するのに4時間かかりました。 Webサービスへの接続が成功したコード行を追加することで

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; 

私はusing文でコードを追加しましたが、私は誰もがどこに私を伝えることができるので、もしそれが一度だけ必要だと思いますこのコードを追加するのに最適な場所であり、WebApiプロジェクトにはなぜそれが必要なのですが、私のUWPプロジェクトには必要なのですか?

関連する問題