IISExpress无法使用Visual Studio 2013找到运行localhost的ssl页面

时间:2015-03-05 03:01:14

标签: c# asp.net ssl visual-studio-2013 iis-express

当我以http://localhost:26049访问该网站时,该网站运行正常。如果我尝试使用https://localhost:44319访问该网站,则会找不到网页。

这是我的项目属性:

project properties

这是来自我的IISExpress应用程序配置:

<site name="MVC Authentication" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="F:\Projects\MySite\Test" />
    </application>
    <bindings>
        <binding protocol="https" bindingInformation="*:44319:localhost" />
        <binding protocol="http" bindingInformation="*:26049:localhost" />
    </bindings>
</site>

12 个答案:

答案 0 :(得分:31)

从这篇文章中得到解决方案。必须删除所有localhost证书并修复IIS Express。谢谢@ShaTin

https://stackoverflow.com/a/22818853/853295

确保删除以前的“localhost”证书,因为这些证书可能与IIS Express生成的证书冲突。我有同样的错误(ERR_SSL_PROTOCOL_ERROR),在尝试了许多“解决方案”之后我花了很多时间才弄明白。我的错误是我创建了自己的'localhost'证书,其中有两个。我不得不删除它们并让IIS Express重新创建它。

以下是检查和删除“localhost”证书的方法:

在“开始”上,键入 - &gt; MMC.EXE, 档案 - &gt;添加/删除管理单元..., 选择证书 - &gt;添加&gt; - &GT;计算机帐户 - &gt;本地电脑, 检查证书&gt;个人&gt;证书。 确保存在的localhost证书具有友好名称“IIS Express Development Certificate”。如果没有,删除它。或者如果是多个,则删除全部。 在Visual Studio上,选择项目,然后在属性选项卡下,启用SSL = true。保存,构建和运行。 IIS Express将生成一个新的“localhost”证书。

注意:如果它不起作用,请尝试以下操作:确保在删除“localhost”证书之前,在VS项目上禁用IIS Express并停止其上的所有正在运行的应用程序。此外,您可以转到“控制面板”&gt;程序'和修复IIS Express。

答案 1 :(得分:28)

请为了对g * d的热爱,在你陷入一些不必要的疯狂之前试试这个!

(显然 IIS Express 已保留 44300 - 44399 的端口范围,用于模拟 SSL

Change to port 44300 (https://localhost:44300/)

答案 2 :(得分:14)

我解决此问题的步骤(我正在使用vs2015) enter image description here

1)转到控制面板

2)添加删除程序

3)修复IIS Express

4)重新启动我的电脑

4)接下来转到我的文档 - &gt; IIS Express-&gt;配置文件

5)拿一份它们并从那里删除那些文件

6)删除所有项目C:\ Temp

7)检查sln文件中的.vs文件夹,并在其中转到配置文件夹


8)也要复制一份并删除其中的文件

9)清洁你的解决方案

10)重新启动Visual studio

11)建立并运行

(我从我的同事机器复制了干净的配置文件 - 在上面提到的位置
1]在文件
2] .vs文件夹中 我想只是运行IISExpress,它会为你重新创建文件。 exe位于:&#34; c:\ Program Files \ IIS Express \ iisexpress.exe&#34;。 )

答案 3 :(得分:9)

看起来IIS Express没有在https URL下启动项目。尝试将默认项目URL更改为

中的SSL

“Web项目 - &gt;属性 - &gt; Web-&gt;项目URL”到带有https的URL。

enter image description here

答案 4 :(得分:7)

在我之前的运行中,IIS Express向Personal&gt;添加了一个证书(称为localhost)。证书文件夹。但是我在应用程序中收到了无效的证书错误。所以我将localhost证书移动到受信任的根...&gt;证书和一切都开始奏效。

第二天,当我运行相同的应用程序时,我开始收到此ERR_CONNECTION_RESET错误。我所要做的就是将localhost证书移出受信任的根...&gt;证书文件夹并返回个人&gt;证书文件夹。 Am I incorrectly implementing IntoIterator for a reference to a LazyList implementation or is this a Rust bug?

如果任一文件夹中缺少“localhost”证书,则必须从控制面板&gt;修复/重新安装IIS Express。添加/删除程序。 这将恢复localhost证书。

Visual Studio 2015,IIS Express,Windows 8,Asp.net MVC

答案 5 :(得分:1)

我在使用Chrome和Edge时遇到了这些SSL问题。

经过漫长的审查所有这些答案和建议的过程,最终对我有用的东西(asp.net mvc 5,VS2015)是上述答案的混合

  1. 如上所示添加证书管理单元,删除mutlitple证书并重新生成新证书:Thanks @garethb
  2. 然后问题出在该证书的信任级别。以下链接显示了导出然后导入(而不仅仅是移动)本地证书的分步过程 https://blogs.msdn.microsoft.com/robert_mcmurray/2013/11/15/how-to-trust-the-iis-express-self-signed-certificate/

    1. 关闭所有内容然后重建并部署到IIS Express时,我在任何浏览器中都不再出现SSL错误

答案 6 :(得分:0)

在VS2017中,这些选项都没有对我有用同样的问题。使用带有自签名证书的iisexpresscmdadmin的这个解决方案让我的网站终于拉起来了:

How do I fix a missing IIS Express SSL Certificate?

答案 7 :(得分:0)

我遇到了同样的问题。我的HTTP站点运行正常,但IIS Express无法启动我的SSL站点。虽然它在前一天做了。

我的问题是我以某种方式搞砸了aplicationhost.config文件。我的项目注册了两次:

<site name="Test.Api" id="5">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\bartd\Source\Repos\Test\Test.Api" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:27108:localhost" />
    </bindings>
</site>
<site name="Test.Api(1)" id="6">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\bartd\Source\Repos\Test\Test.Api" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:27108:localhost" />
        <binding protocol="https" bindingInformation="*:44349:localhost" />
    </bindings>
</site>

从项目属性页面删除这两个条目并创建一个新的虚拟目录为我解决了这个问题。

Creating a new virtual directory from the properties page

答案 8 :(得分:0)

使用VS 2017,即使在导出证书并导入Chrome后,这些解决方案似乎都不起作用。 我做了两件事之后终于工作了: (1)将localhost证书从Personal复制到Trusted Root (2)将项目属性中的端口号从61899更改为44300 我认为只做第(2)步就可以了。

答案 9 :(得分:0)

尝试在IIS中更改绑定

此链接可以解决我为期3天的间歇性头痛: https://deanhume.com/set-up-iis-7-to-run-a-secure-site-locally-https/

以下是导致我发现真正问题的具体步骤:

Windows键>管理工具> Internet信息服务>单击默认网站(或任何您的网站)>绑定...>将所有重复的绑定散发给本地主机>为端口80添加https绑定

答案 10 :(得分:0)

0

我最近在VS 2019和IIS Epress中遇到了一个非常相似的问题。我试图将http更改为https,以便可以使用ADFS。 https://i.stack.imgur.com/Kd34a.png

经过更多研究,我尝试将“ Require SSL”属性从true切换为false,然后再切换回true。这触发了对applicationhost.config文件(...。Vs \ ProjectName \ config \ applicationhost.config)的更新,该文件创建了一个具有SSL协议新端口号的新SSL绑定。因此,我用建议的新端口(在项目的Web属性,配置文件和ADFS配置中)修改了所有链接,并且它可以正常工作。结论,对于同一站点,http端口不必与https相同。

答案 11 :(得分:0)

就我而言,只需从 Edge 切换到 Chrome 即可立即解决此问题(VS 2019 Pro / Windows 10 最新版)