我有一个 asp.net MVC 4 解决方案。当我尝试使用 Visual Studio 2012 打开它时,出现以下错误:
Microsoft Visual Studio 为 ASP.NET 4.5 配置 Web https://localhost: 失败。您必须为 ASP.NET 4.5 手动配置此站点,以便该站点正确运行。在本地计算机上找不到服务器 https://localhost:44300/。确保本地 IIS 服务器已配置为支持安全通信。确定 帮助
虽然解决方案打开。此外,当我尝试从调试菜单运行它时,我收到以下错误:
Unable to launch the IIS Express Web server.
The start URL specified is not valid. https://localhost:44300/
而且我无法调试代码。如何摆脱这些错误并从 VS 2012 调试/运行网站?
请建议。
You must manually configure this site for ASP.NET 4.5 in order for the site to run correctly.
和 2) The start URL specified is not valid.
。此外,您似乎正在使用 HTTPS; AFAIK IIS Express 不支持这一点(如果支持,您可能需要配置它,因此 Make sure the local IIS server has been configured to support secure communications
部分)。 编辑: 它似乎支持 SSL:riii.nl/apr5u,这是 Hanselman 自己的分步指南!
我有同样的问题。原因 - 错误的 IIS 配置文件。
尝试删除自动创建的 IISExpress
文件夹,该文件夹通常位于 %userprofile%/Documents
,例如 C:\Users\[you]\Documents\IISExpress
。
别担心,VS 应该再次创建它——这一次是正确的——一旦你再次运行你的解决方案。
编辑:用于删除文件夹的命令行:
rmdir /s /q "%userprofile%\Documents\IISExpress"
如果使用VS2015或以上
确保 iisexpress 进程未运行。
确保没有其他进程正在使用您所需的端口。你可以通过执行来做到这一点
netstat -a -b
在控制台中(以管理员身份,在开始菜单中键入 cmd
,右键单击并选择“以管理员身份运行”)。如果您看到状态为 ESTABLISHED 或 LISTENING 的条目,则表示其他进程正在使用此端口。您需要终止该进程或更改端口。
然后删除以下文件
<<path_to_solution_folder>>\.vs\config\applicationhost.config
请注意 .vs
文件夹可能已隐藏
然后找到 <<project-name>>.csproj.user
文件,使用文本编辑器(记事本)打开它,并确保 WebProjectProperties
下的 IISUrl
配置为 <IISUrl>http://localhost:XXXXX/</IISUrl>
,其中 XXXXX
是您想要的端口。
这样做并尝试启动应用程序后,您可能会得到
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
然后转到 {Project Properties} -> Web 并按“创建虚拟目录”按钮
https://i.stack.imgur.com/BQNrn.png
@roblll 说得对。但是对于那些不想挖掘答案的人来说,这里是:
关闭 Visual Studio(可能没有必要,但不会有什么坏处)。导航到您的文档文件夹。这是我的 IISExpress 配置目录所在的位置。在 config 文件夹中,有一个名为应用程序主机的文件。打开那个。搜索您的项目名称。当它在您之前的尝试中被轰炸时,它应该由 Visual Studio 添加到那里。请注意,HTTP 与您打算用于 https 的端口绑定。 //改变这个:
请记住,Visual Studio 提供的端口可能与您预期的不同。只需确保绑定中的端口与项目属性的 Web 选项卡中的内容相对应。
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
我有同样的问题,但对我有用的解决方案是不同的。
在 VS2013 中打开 Debug > {YourWebsiteName} Properties 选择“Web”选项卡。在“服务器”下,我发现“覆盖应用程序根 URL”已被选中。我取消选中并保存。
这就是我让事情运转起来所需要的一切。
尝试以下步骤:
删除 IISExpress 文件夹,因为@Yehuda Shapira 说重新启动计算机删除项目中的 .vs 文件夹
祝你好运!
同样的问题,但需要在管理员模式下启动 VS2013。
我遇到了同样的问题,然后我打开了任务管理器-> 进程然后杀死了 iisexpress.exe 进程。之后我尝试运行该应用程序并能够成功运行它
在我的情况下,该项目位于网络驱动器上,并且如其他答案中所述,删除 IIS Express 文件夹没有帮助。我的解决方法是将项目复制到本地驱动器并且它有效!
我遇到了同样的问题,感谢@Jacob 提供有关它的信息。
原因是 - 您的项目在位于的配置文件 applicationhost 中输入错误
C:\Users\(yourusername)\Documents\IISExpress\config
关闭所有 Visual Studio 解决方案。将 IISExpress 文件夹重命名为某个 IISExpress-Copy (而不是删除,您可以拥有它的副本) 现在再次打开 VS 并构建/调试项目,现在您将看到再次为您创建的 IISExpress 文件夹并具有正确的配置。
它对我有用,希望它也对你有用。
IISExpress
文件夹。删除它对我不起作用。
我有同样的问题,原因是“覆盖应用程序根 URL”标志设置在属性 - > Web 删除标志后,IIS Express 使用定义的端口正常启动。
您似乎需要进行一些配置,因为您似乎正在使用 SSL;这是step-by-step guide by Scott Hanselman本人。
对我有用的唯一解决方案是创建另一个测试项目。然后执行以下步骤:
右键单击项目并转到 Properties -> Web 在 Use Local IIS Web Server 部分的项目 URL 下,复制项目 URL(http://localhost:59002/) - 这是来自测试项目。导航到出现此错误的项目。右键单击项目并转到属性-> Web。将项目 URL 粘贴到使用本地 IIS Web 服务器部分(从测试项目复制的 URL)。关闭测试项目并保存。删除测试项目并运行给出错误的项目。之后工作...
也许不是最好的方法,但这是我可以让它发挥作用的唯一方法。在我重新加载我的笔记本电脑(硬盘驱动器崩溃)并从它们所在的服务器获取我的所有项目后,我收到了此错误消息。
分享给未来的读者。手动创建虚拟目录对我有用。
在解决方案资源管理器中选择项目
按 Alt + Enter
转到网页部分
单击创建虚拟目录
在网上搜索两小时后,我发现我的解决方案如下步骤 - 关闭 Visual Studio - 删除项目的 .vs 文件夹 - 打开 Visual Studio 并重新运行项目
那是我的工作,玩得开心
在我的情况下,在我允许对我的 IIS Express 网站的外部请求并配置 Windows 防火墙以允许 iisexpress.exe 之后,我无法从 Visual Studio 2013 中启动它。我仍然可以使用命令行启动它,它服务于本地和外部要求很好。
C:\Program Files (x86)\IIS Express>iisexpress /site:MyWebSiteName
在 VS 工作之后,我尝试创建一个防火墙规则以允许我的端口。
我在 VS 2013 上遇到了同样的问题,即使在所有可能的尝试之后它也无法正常工作。我的问题通过以下方式解决:
- In control panel (Program and Features) I found that all of the IIS related features were unchecked.I finally checked all of those and restarted my system.
- Then I started my VS 2013 as administrator and thats it everything
worked fine then.
至少你可以试一试,因为它对我有用。
我有同样的问题,就我而言,我只是清理然后重建我的解决方案,它对我有用
我有类似的问题 - 由于该错误,VS 无法加载特定的 Web 项目。这是有帮助的:
在解决方案中编辑项目
查找 UseIISExpress 和/或 UseIIS 部分并确保它们不会相互交叉。
就我而言,它是这样的:
...
<UseIISExpress>True</UseIISExpress>
...
<UseIIS>True</UseIIS>
...
因此,我将其更改为:
...
<UseIISExpress>True</UseIISExpress>
...
<UseIIS>False</UseIIS>
...
然后它起作用了。
关闭 Visual Studio 的所有实例。打开任务管理器。结束所有活动的 IIS 进程。重新启动 Visual Studio。
我们的网站也有同样的问题。我们能够在 Visual Studio 中修复这一切。我们使用的是 2012 Ultimate。
我们看到的根本问题是启用 SSL 后,出于某种原因,VS 为标准 URL 和安全 URL 分配了相同的端口。当我们从 TFS 中提取代码时,似乎出现了这个问题。
为了解决这个问题,我们采取了以下步骤:
右键单击项目并转到属性 -> Web 在使用本地 IIS Web 服务器部分的项目 URL 下,从 URL 中删除“s”并保存。 (例如,从 https://:44301 转到 http://:44301。这将允许下一步工作)在解决方案资源管理器中,选择项目并在属性窗口中(如果未显示,请按 F4)更改启用 SSL为假,然后返回真。它将生成一个不同于标准 URL 的新端口(在我的例子中,我有 44301 作为我的 SSL 和 44305 作为我的标准)导航回属性 - > Web 并将“s”添加回项目 URL。 F5 和骑!
确保未选中覆盖应用程序根 URL 的复选框。
检查防病毒防火墙并允许访问 Visual Studio 网络。例如在 nod32 中:
goto setting (f5) -> network->personal firewall->rules and zones
在“zone and rule editor
”中点击“setup
”并找到vs 2010
或12
或...并允许访问网络。
禁用防火墙后,我可以毫无问题地运行它。
我今天遇到了这个错误。运行 Win 8.1 和 VS 2013。突然我的项目无法运行,我收到消息“无法启动 IIS Express Web 服务器”并且没有更多信息。
过了一会儿,我发现所有IIS Express无法启动的项目都在运行.net 3.5。运行更高版本的项目确实开始正常。
我的解决方案是删除 .net 3.5(从控制面板 -> 打开/关闭 Windows 功能),重新启动 Windows 并再次添加 .net 3.5。
我会在我的机器上为虚拟机设置 Internet 连接共享。我将其关闭,并且能够在 Visual Studio 2015 中进行调试。但是,为了在重新启动后持续调试,我需要将 Internet 连接共享服务设置为手动启动,即使我的 Internet 连接都没有启用 Internet 连接共享。
好吧,上述步骤都不适合我。在我的情况下,我的 applicationhost.config
文件不知何故缺少以下两行代码
<add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
<add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
希望这可以帮助一些人。
除了@Yehuda Shapira 给出的答案外,我还必须进行另一项更改,即删除 .csproj.user 文件,其中绑定信息如
<IISUrl>http://localhost:54462/</IISUrl>
已存储。删除该文件关闭 Visual Studio,然后重建。希望这会有所帮助。
在尝试其他任何操作之前,请确保 1. 重新启动 Visual Studio(主要用于从文件刷新内存驻留选项)和 2. 重新启动系统(主要用于无效文件锁定)。如果您的问题是暂时的或自行解决的,那么这些都不会改变任何东西。它适用于我的电脑重启。此外,如果您从事多用户项目,请确保您拥有最新的可用版本 - 其他人可能在项目文件中错误地签入了无效的内容,并且您无缘无故地弄乱了您的系统。如果这些不起作用,那么您可能需要更改一些卡住、丢失或需要修改的设置——其他答案有很多建议。
就我而言,我在删除该绑定后在 applicationHost.config 文件上添加了新的站点绑定,它工作正常。 applicationHost.config 路径位于 .VS(hidden) 文件夹上的项目根目录中
从 VS2012 运行我的解决方案时,我遇到了类似的问题:
Unable to launch the IIS Express Web server.
The start URL specified is not valid. https://localhost:44301/
我选择了错误的项目作为启动项目。我将云项目设为启动(右键单击项目-> 设置为启动项目),一切都开始正常工作。
Jason 在此处的剃须刀系列文章 http://jasonrshaver.com/?tag=/Client+Certificates 准确解释了如何设置您的 applicationhost.config 站点条目以允许应用程序在 ssl 或标准 http 中运行。
他建议的其中一件事是为该站点放置两个绑定条目。这就是我所做的。
<bindings>
<binding protocol="http" bindingInformation="*:59945:localhost" />
<binding protocol="https" bindingInformation="*:44300:localhost"/>
</bindings>
他还建议更改其他设置。它在我的三台机器中的两台上工作。每次我被告知在应用程序主机中手动配置一个站点时,它通常与绑定有关。 (例如对多个 Web 应用程序使用相同的端口。)