2016-10-11 10 views
1

TLS 1.2をサポートするために、一連のプロジェクトを.NET 4.6.1に更新しようとしています。このソリューションには、クラスライブラリ、コンソールアプリケーション、WebForms Webサイト、およびMVC Webサイトが含まれています。同じマシン上のコンソールアプリケーションとIIS WebサイトでServicePointManager.SecurityProtocolが異なるのはなぜですか?

私はすでに、すべてのプロジェクトとウェブサイトを.NET 4.6.1を対象に変更し、すべてを再コンパイルしました。今

、私は、コンソールアプリケーションの一つでServicePointManager.SecurityProtocolのデフォルト値を確認し、その後、私は、次の出た場合:

Tls, Tls11, Tls12 

しかし、私はの一つにServicePointManager.SecurityProtocolのデフォルト値を確認した場合IIの下でコンソールアプリケーションとWebフォームのウェブサイトを比較するとき

Ssl3, Tls 

は、だから私は、同じマシン上でServicePointManager.SecurityProtocolに異なる値を見ることができます:IISの下で実行されているWebフォームのウェブサイトは、その後、私は次の取得しますS.

私は、Webフォームのウェブサイトは「のsystem.web」の下にWeb.configファイルに次のようしていることを確認することができます

<compilation debug="true" targetFramework="4.6.1"> 

しかし、IISは「targetFramework」属性を無視しているかのように見えます。

期待どおりに動作させるには、IISで何かする必要がありますか?

UPDATE:

IISが実際に「targetFramework」属性を尊重していることを表示されますが、コンソールアプリケーションと比較するとServicePointManager.SecurityProtocolはまだIISの下に別のデフォルト値を返します。

答えて

1

OK - 私はそれを試しました。

ウェブサイトのターゲットフレームワークを変更するには、右クリックして[プロパティページ]をクリックし、[ビルド]ページで[ターゲットフレームワーク]を変更します。

あなたがこれを行う場合、その中には「のsystem.web」ノードの下に「コンパイル」ノードの「targetFramework」属性を変更します:

<compilation targetFramework="4.6.1" /> 

しかし、これでは十分ではありません - あなたもする必要が「のsystem.web」ノードの下に「のhttpRuntime」ノード上で「targetFramework」属性を変更します。

<httpRuntime targetFramework="4.6.1" /> 

そして今、IISの下で、ウェブサイトやバックコンソールアプリケーションレポートServicePointManager.SecurityProtocolについても同じことの両方を。

関連する問題