我在做什么:
打开 Visual Studio 社区 2015
文件 -> 新建 -> 项目
在 Visual C# 下:Web -> ASP.NET Web 应用程序
Web应用程序
然后按 f5 弹出错误“无法连接到 Web 服务器 'IIS Express'”。
删除位于 Documents\IISExpress\config
中的 applicationhost.config
不会更改错误消息。 (program files
和 program files (x86)
中还有一个 IISExpress
文件夹。)
我注意到的东西,我不知道这是否是一个问题:
未找到引用的文件“lib/jquery-validation/jquery.validate.js”。
我得到了一个带有 rawcap 的转储,但我没有注意到很多。那里有一些东西:
"Framework":{"FrameworkName":"DNXCore,Version=v5.0","FriendlyName":"DNX Core 5.0","ShortName":"dnxcore50","RedistListPath":null}
我没有注意到问题,但如果可以帮助找出我无法连接到 Web 服务器的原因,我有网络数据。我立即得到一个 RST,ACK
,所以我猜端口已关闭,无论此 Web 服务器是什么,都没有设置。
有关此问题的更多信息:800700c1 error from /trace:error
我试过了:
删除 applicationhost.config (并更改端口号)
以管理员身份运行 Visual Studio
删除 Documents 中的 IISExpress 文件夹(在重新安装文件夹之前更改错误消息)
关闭和打开 ssl,将 url 复制到启动框。 (注意:我没有使用 ssl)
清除所有 sfc /scannow 错误
以 x86 版本和 64 位版本启动 iisexpress
在为 Visual Studio 2015 安装更新 2 后,我开始遇到同样的错误。我尝试了上面的一切,但没有运气。但是,我找到了一个适合我的解决方案:
删除 YourSolutionFolder\\.vs\config\applicationhost.config 文件(注意:.vs 是隐藏文件夹) 打开 Visual Studio,右键单击网站 > 属性 > 调试选项卡 > Web 服务器设置 > 应用程序 URL - 更改端口号。
如果您已将 IIS 配置为使用相同的端口,(停止应用程序/使用不同的端口)并重试。
退出 VS 并删除 (project)\.vs\applicationhost.config
文件。重启VS。它应该开始工作。
.vs
文件夹并为我工作,仅此而已
尝试使用不同的端口。我刚刚建立了一个新的 Core 1.0 RC1 项目并得到了同样的错误。
右键单击 web 项目
调试选项卡
关闭并再次打开启用 SSL,它应该生成一个新的随机端口
复制 SSL URL 并粘贴到启动 URL 框中
运行项目
为我工作(TM)。
答案来自:https://stackoverflow.com/a/28650554/134761
https://i.stack.imgur.com/yn1VP.png
Startup
类是如何配置的以及您拥有哪些 appsettings.json
文件。还有 Properties\launchSettings.json
在本地启动不同的配置文件。 docs.microsoft.com/en-us/aspnet/core/fundamentals/… dejanstojanovic.net/aspnet/2018/december/…
我在 .net core 2.1,visual studio 版本 15.9.6 上遇到了这个问题。当我删除 .vs 文件夹时,我重新打开了 Visual Studio,但问题仍然存在。下面对我有用的解决方案:
删除 .vs 文件夹(它是一个隐藏文件夹)。重新启动计算机。
其他解决方案:
关闭 Visual Studio,从项目文件夹中删除 bin 和 obj 文件夹。打开项目然后重建解决方案。
尝试以管理员身份运行 Visual Studio。
清洁解决方案然后重建
清洁解决方案。 2) 退出 Visual Studio。 3) 删除 .vs 文件夹 4) 重新打开 Visual Studio
清洁解决方案。 2) 退出 Visual Studio。 3) 删除 .vs 文件夹 4) 重新打开 Visual Studio
重启机器(如果你负担得起)
按要求将我的评论复制到答案中。
对于 Net Core 2.2 项目 - 经过大量的努力并尝试了从删除 .vs 文件夹、删除 IIS Express 配置、更改端口号、更改绑定以及以管理员身份运行 VS 等所有操作后,我终于解决了问题
关闭VS,删除launchSettings.json 打开重新生成launchSettings.json 的VS。
文件已损坏或不正确,甚至当它更改导致失败时,都不明显。
当我更新项目的端口号时,我在 .net core 2.0 中遇到了这个问题。
我能够分两步解决问题:
第 1 步:删除隐藏在主解决方案文件夹中的 .vs 文件夹。 (在此之前关闭visual studio)然后当你再次启动visual studio时,其中的这个文件夹和文件(applicationhost.config)将由visual studio自动创建。
STEP 2 : 对于多个启动项目,如果您仍然面临问题,则一个一个运行项目作为启动,然后作为多个启动项目运行。
我有同样的问题,我可以通过更改端口号来解决它。
右键单击项目并选择属性转到调试部分在 Web 服务器设置下更改应用程序 URL 端口 [只需增加一个 :)]
https://i.stack.imgur.com/X9YCk.png
在我的情况下,这是在 IIS Express 尝试连接的同一端口上侦听的其他应用程序。我必须运行 netstat -ao
才能查看使用相同端口和关闭应用程序的进程的 PID。在我的案例中,应用程序是 Viber。
我刚刚将我的配置文件从“IIS Express”更改为“MyProjectName”(我认为它使用 kestrel 作为 http 服务器而不是 IIS),现在它工作正常:
https://i.stack.imgur.com/XUmLU.png
以管理员权限运行 VisualStudio 并运行项目。然后关闭 VisualStudio 和所有错误并以普通用户再次运行 VisualStudio。
这为我做到了。
看起来 IIS 必须使用管理员权限向某些配置写入一些内容(端口 80 不适用于普通用户,但端口 6767 工作正常)。
其中许多回答并没有完全解决手头的问题。对我来说真正的问题是我在 applicationhost.config 文件中有两个使用相同端口的绑定,并且我没有打开第二个(非本地主机)绑定的端口。 VS 将允许您在这些情况下仍然运行,但前提是您处于管理员模式(因此上述所有答案)。
您实际上是在同一端口上创建应用程序的两个 IIS express 实例,因此更改 applicationhost.config 文件中的一个端口将允许您继续。然而,有两个不同的 applicationhost.config 文件。您将需要选择具有您在项目属性中看到的绑定 IP 和端口的那个
https://i.stack.imgur.com/VQyHh.png
转到可以查看项目解决方案和项目文件夹的文件夹(在文件资源管理器中显示隐藏的项目)。导航到您隐藏的 .vs 文件夹 -> “YourAppName”文件夹 -> 配置。它应该包含您在项目属性中看到的绑定信息。
例子:
<bindings>
<binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
<binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>
将这些端口号之一更改为“7000”以外的其他端口号,这样您就不会尝试使用相同的端口。
就我而言,我使用的不是本地主机地址的 192 地址,因此我需要使用一些 netsh 命令来打开该端口并启动 ip。这是一个 Link,它显示了如何为 IIS Express 打开端口以允许远程连接。除非您运行列出的那些 netsh 命令,否则以普通用户身份运行将不起作用。
以下是 netsh 命令:
netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=58938 profile=private remoteip=localsubnet action=allow
复制这些命令并在 cmd 中使用 ADMIN 权限以及您的 IP 地址和端口号运行它们。
澄清
这里真的很多答案都是一样的,比如“重启,它又神奇地工作了”。
好吧,10 次中有 9 次的人会遇到像 OP 这样的问题,这是因为 IP 地址已经在使用中。
回答
可能有 2 个 IP 地址正在使用中。您可以通过以下方式找到它们:
1)右键点击启动项目
2) 点击“属性”
3) 单击“调试”选项卡
在这里您可以看到您的“App URL”和“SSL URL”。
如果您的“应用程序 URL”正在使用中,只需在此处更改并保存它,它应该可以再次使用。
如果您的“SSL URL”正在使用中,请关闭 VS,删除项目隐藏 .vs 文件夹中的“applicationhost.config”文件,然后再次打开 VS。
对我有用的解决方案是:关闭 VS 项目在文件资源管理器中,导航到项目并删除整个“.vs”文件夹重新启动项目以“调试”方式运行显然,它与“应用程序主机”有关.config”文件。
享受!
如果您负担得起重新启动机器的费用,那么就这样做👌,在尝试解决此问题近一个小时后,这解决了我的问题,没有希望🤯。
我可以通过改变一个东西来切换这个错误。在我的 ASP.Net Core 1.0 RC2 Web 应用程序项目的 launchSettings.json
文件中:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "https://localhost:18177/",
"sslPort": 0
}
},
至
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:18177/",
"sslPort": 0
}
},
我已更改为 https 以尝试使用该协议运行项目。显然这里不是进行这种改变的地方。我怀疑它在同一个端口上创建了多个绑定,而 IIS Express 不喜欢这样。
http
而不是 https
我遇到了同样的问题,但我修复它的方法是转到 applicationhost.config 并删除我没有添加的端口(我猜是 IIS Express),它将我的特定端口站点放在另一个端口上。
这是我的绑定的配置文件:
<bindings>
<binding protocol="http" bindingInformation="*:54764:localhost" />
<binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>
我删除了第一个绑定项,因为我想要的唯一端口是 44360。我的配置文件现在看起来像这样:
<bindings>
<binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>
现在我在调试时看不到错误。
我还注意到我项目中的第二个 API 也分配了端口 80,我也将其删除。
从项目文件夹中删除 bin 和 obj 文件夹并重建。
对我来说,问题是另一个进程正在使用相同的端口。 (在我的情况下,Outlook 使用与我的网站相同的端口,因此我的网站无法启动)
是的,您可以更改本地端口,但如果您正在运行 API 或其他应用程序需要的东西,您并不总是希望这样做。
要获取哪些应用程序正在使用哪些端口的列表,请打开 CMD 并键入“netstat -aon”,您将获得一个端口列表。找到您的站点应该使用的端口,或者您想要使用的端口并记下/记住 PID。
现在打开任务管理器并单击选项卡“详细信息”。使用您的 PID 查找进程并结束它。现在您应该能够使用该端口启动 IIS Express。
我刚刚清理了我的解决方案,然后重新构建它,最后按 F5 并且它起作用了!很简单。
我不会假装完全理解是什么 MS 错误造成了这个问题,但这是另一个潜在的解决方案:
在 .vs/config/applicationHost.config 文件中,找到 <system.applicationHost><applicationPools>
部分。在池下,确保 managedRuntimeVersion
属性值与系统 IIS 配置中的值(和/或已安装的 .NET 框架的版本)匹配。
例如,您可能会发现(和我一样)生成的文件具有:
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
就我而言,您可以将其替换为:
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
请注意从“v4.0”到“v4.0.30319”的替换。这解决了这个问题。
似乎发生了什么:
我相信 VS 正在为 .NET 框架生成一个带有“默认”版本的 applicationHost.config 文件,该文件可能与系统上安装/配置的特定版本不匹配。您可以通过在进程监视器中跟踪执行并找到 iisexpress.exe 的命令行来调试/观察此问题。运行添加了 /trace:error
的此命令会生成一条有关无法预加载 v4.0 版本的 CLR 的更多信息性消息。以机智:
启动 IIS Express ... 尝试预加载 CLR 版本 v4.0 时失败。 hr = 80131700 无法初始化 W3WP_HOST hr = 80131700 进程模型关闭调用无法启动 iisexpress。
无论如何,认为这可能对其他人有帮助,因为在网上有多个参考资料和不良信息是很常见的,而且我个人现在已经打过几次了。
ctrl + alt + p
快捷键将其附加到进程并选中 Show process for all users
并选择 w3wp.exe
(有时需要刷新网站才能找到 w3wp.exe
)然后点击 Attach
按钮.
对我来说,当我在 DOS 提示符上添加 iplisten
时,IIS Express 无法访问,如下所示:netsh http add iplisten MyIPAddress
。我通过像这样删除 iplisten
来修复它:netsh http delete iplisten MyIPAddress
。
iplisten
条目。在这种情况下,IISExpress 似乎没有错误消息。
我刚刚遇到了同样的问题,我杀死了所有仍在运行的“iisexpress.exe”进程。这对我有用!
如果它正在工作并突然停止,请先尝试:
关闭 Visual Studio
杀死 iisexpress.exe 进程
重新打开 Visual Studio
一旦我在 applicationhost.config 中添加一个新的绑定,我的就会发生,以管理员身份运行解决了这个问题。
只需关闭视觉工作室并重新打开并执行。它对我有用。
我的解决方案(对于 .net core 2.0)是我忘记在 applicationUrl 中添加端口号,在 launchSettings.json 的 iisExpress 下
"iisExpress": {
"applicationUrl": "https://localhost:50770",
"sslPort": 50770
}
我能够通过重新启动计算机来解决此问题。我尝试了一些不成功的事情,最后放弃并重新启动了我的电脑。在我重新启动后,它已经运行了几天。可能是某个进程挂起的结果。
对我来说,这是以下 instructions 的混合:
删除您的 Web 应用程序的 .vs\applicationhost.config 并重试。
然后,也许最重要的是,以管理员权限运行 Visual Studio。
我将 .UseUrls("https://localhost:<some port>/")
添加到 Program.cs。这似乎对我有用!
问题可能是因为为您的项目选择了 [√] Enabled SSL
(请参阅项目设置窗口中的 Debug
选项卡),但 Visual Studio 决定装傻并设置类似 http://localhost:32396
的东西。它失败的原因是因为 1. 它不是 HTTPS
,以及 2. 证书无效。要强制它,您需要使用 44300-44398 范围内的端口。
请参阅https://stackoverflow.com/a/24957146/1236397
.vs\config\<MyProject>\config\applicationhost.config
launchSettings.json
3. 打开重新生成launchSettings.json
的 VS。文件已损坏或不正确,甚至当它更改导致失败时,都不明显。<project>/Properties
文件夹下的launchSettings.json
的人。我花了一分钟才找到它的确切位置,但它成功了!