165

IISExpress で新しい Visual Studio 2013 を初めて使用しています (以前は VS2010 で ASP.net 開発サーバーを使用していました)。プロジェクトをデバッグしようとして問題が発生しています。

これは私がChromeで見るものです:

サーバーへの安全な接続を確立できません。これは、サーバーに問題があるか、所有していないクライアント認証証明書が必要である可能性があります。エラーコード: ERR_SSL_PROTOCOL_ERROR

プロジェクト URL が https URL を使用するように、プロパティ -> web ファイルを更新しました。ただし、それを行った後、起動時に新しいエラーが発生するようになりました:

localhost への接続が中断されました。エラーコード: ERR_CONNECTION_RESET

ありがとう

4

26 に答える 26

51

URLRewrite を使用して web.config で SSL 接続を強制している場合は、おそらく localhost アドレスを書き換えて https を強制しています。SSL を有効にしてデバッグすることは重要ではなく、URLRewrite を使用している場合は<add input="{HTTP_HOST}" pattern="localhost" negate="true" />、web.config ファイルの rewrite セクションに追加することを検討してください。ローカルホスト アドレスの書き換えを停止しますが、運用環境にはそのまま残します。URLRewrite を使用していない場合、または SSL を使用してデバッグする必要がある場合は、http: //www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspxが役立ちます。VS2010用ですが、VS2013でも十分です。

于 2013-11-12T20:34:07.270 に答える
6

私の場合、自己署名証明書を作成して機能させましたが、証明書が信頼されていないためにブラウザーでエラーが発生していました。そこで、証明書スナップインの [信頼されたルート証明機関] > [証明書] フォルダーに証明書を移動しました。うまくいったので、その日は Visual Studio を閉じました。

翌日、プロジェクトを開始したところ、元の質問に記載されているエラーが表示されました。問題は、IISExpress を構成した証明書が [個人] > [証明書] フォルダーに存在する必要があることです。存在しないと、HTTPS が機能しなくなります。IIS Express が正常に起動したら、証明書を信頼できる場所にドラッグして戻すことができます。IIS Express を再起動するまで動作し続けます。

毎回証明書を前後にドラッグすることに煩わされたくないので、証明書のコピーを両方の場所に配置するだけで、すべてが正常に機能します。

于 2016-05-07T08:04:47.757 に答える
6

Visual Studio 2015 でも同じ問題があります。web.config で SSL バインディングを使用しているためです。

<rewrite>
   <rules>   
     <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
       <match url="(.*)" />
       <conditions>
          <add input="{HTTPS}" pattern="off" />
       </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
     </rule>
   </rules>
</rewrite>

そして、djroedgerさんの答えで問題を解決できます。交換することで

<add input="{HTTPS}" pattern="off" />

<add input="{HTTP_HOST}" pattern="localhost" negate="true" />

私のweb.configに、私のコードは

<rewrite>
  <rules>   
    <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
         <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
         <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
    </rule>
 </rules>
</rewrite>
于 2017-02-06T03:00:50.840 に答える
2

44300 ~ 44399 の範囲外のポートを使用する必要がある場合は、次の回避策があります。

  • IIS で新しいサイトを作成します (Express ではありません)。
  • 必要なポートに HTTPS をバインドします
  • SSL 証明書には、IIS Express 開発証明書を選択します。
  • サイトが作成されたら、実際に実行する必要がないため停止します。

これにより、IIS Express 開発証明書がそのポートに登録され、44300 ~ 44399 の範囲の要件を回避するために私が見つけた最も簡単な方法です。

于 2019-04-09T15:34:25.667 に答える
1

私の問題は Fiddler が原因でした。Fiddler がクラッシュすると、プロキシ設定が乱れることがあります。Fiddler を起動するだけで、すべてが修正されたようです (おそらく、何らかの方法で修復されます)。

于 2016-09-06T17:53:01.907 に答える
0

コンピューターを再構築したばかりでした。このスレッドは、プロジェクト設定> Webで、プロジェクトがHTTPとHTTPポートを使用するように構成されていることに気付いた手がかりを与えてくれました。HTTPS と正しい HTTPS ポートに更新することで、すべてが再び機能し始めました。

于 2016-10-23T12:07:46.870 に答える
0

44300 から 44399 の間で SSL ポートを設定することに関する他の回答を続けるために、Visual Studio で SSL Enabled プロパティを変更することも、特定の SSL URL を設定することもできませんでした。IIS Express の修復など、他の回答は役に立ちませんでした。解決策は、sln ファイルと並行して .vs フォルダーに移動し、config サブフォルダーを開いてから、applicationhost.config ファイルを編集することでした。次に、手動で https 行を追加し、VS を再起動しました。

<binding protocol="http" bindingInformation="*:24941:localhost" />
                <binding protocol="https" bindingInformation="*:44301:localhost" />
于 2016-12-14T17:11:26.070 に答える
0

アプリケーションのswagger(SSLポートで実行44319)が突然動作を停止し、ERR_CONNECTION_RESETエラーが発生するという同様の問題がありました。

少し調べてみたところ44319、このコマンドを使用して SSL 接続を許可するポートのリストからポートが削除されていることがわかりましたnetsh http show sslcert > sslcert.txt44319次に、を使用して SSL 許可ポートにバックポートを追加する必要がありましたnetsh http add sslcert ipport=0.0.0.0:44319 certhash=YOUR_CERT_HASH appid={YOUR_APP_ID}certhashとを見つけるにはappid、最初のコマンドの出力を使用できます。これは私のために働いた!

ここに画像の説明を入力

于 2021-10-05T12:04:41.373 に答える
0

私の場合、デバッグ中にlocalhost の URL がhttps://localhostにリダイレクトされました。これは、何も変更することなく、ある瞬間から別の瞬間に起こりました。ブラウザをハードリロードすることでこれを解決しました。ここにリンク

于 2019-07-09T17:53:05.830 に答える