“无法启动IIS Express Web服务器”错误

问题描述 投票:49回答:25

尝试从Visual Studio启动IIS Express时,我收到此错误,该项目配置为侦听localhost以外的地址。在给出错误“无法启动IIS Express Web服务器”之前,Visual Studio会冻结约30秒。

我已经尝试了所有解决类似问题的解决方案,我想我已经做好了一切。以下是我采取的步骤:

  1. 将以下预留添加到HTTP.SYS: netsh http add urlacl url=http://+:36899/ user=Everyone
  2. 以管理员身份运行Visual Studio 2012(从技术上讲,我不认为自从我手动设置HTTP.SYS后就不应该这样做了)。
  3. 禁用Windows防火墙。
  4. 删除我的“我的文档”文件夹中的IISExpress文件夹以确保默认设置。
  5. 允许Visual Studio在我的Web项目的applicationhost.config中创建条目。然后手动编辑配置文件,将localhost更改为192.168.0.100,这是我的本地IP。然后返回到Visual Studio中的项目属性并将localhost更改为IP并保存项目,以便我的项目现在设置为http://192.168.0.100:36899

我也尝试更改端口并重复上述步骤,因为某些原因导致端口正在使用。

我希望通过Internet上的IP访问我的IIS Express开发人员实例,以进行远程测试。

asp.net visual-studio-2012 windows-8 iis-express
25个回答
56
投票

如果使用VS2015,请关闭解决方案,删除以下文件,然后重新打开解决方案。

<<path_to_solution_folder>>\.vs\config\applicationhost.config

请注意.vs文件夹可能被隐藏


4
投票

只需以管理员身份运行Visual Studio即可

谢谢,


2
投票

在我的情况下,我试图按照事情来解决这个问题。

  1. 从“MyDocuments”中删除iisexpress文件夹
  2. 转到解决方案资源管理器 - >右键单击项目 - >转到属性 - >转到Web选项卡 - >查看服务器 - >单击单选按钮“使用Visual Studio开发服务器”

我希望这能帮到您。


2
投票

我用以下步骤修复它:

  • 关闭Visual Studio
  • 运行netsh http show urlacl并查看是否列出了您的应用程序http地址/端口。
  • 运行netsh http delete urlacl url=[ADDRESS],将[ADDRESS]替换为上一个命令显示的保留URL。例如http://+:17560/
  • 再次运行VS(作为管理员),然后转到Web项目的属性 - > Web,然后单击“创建虚拟目录”按钮。
  • 现在您应该能够运行Web项目了。

1
投票

我花了1个小时尝试上面提到的每一种食谱。然后我没有在哪里重新启动计算机,并再次尝试。现在一切都很好。

因此,在尝试上述所有解决方案之前,请尝试重新启动计算机。它可能有所帮助


0
投票

我在Visual Studio 2012中遇到了同样的问题。我设法通过从C:\ Program Files(x86)\ IIS Express \ AppServer \ applicationhost.config路径中删除不必要的站点条目来解决它。随着以管理员身份运行我的VS2012。希望这可以帮助


0
投票

一开始,尝试禁用防火墙。它帮助了我。 Eset Smart Security 5阻止了它。


0
投票

几天前我遇到了这个问题,以上所有项目都无法帮助我。我的SONY VAIO笔记本电脑上有ESET Smart Security 5.0,可以在交互模式下工作!最后我发现了问题,ESET阻止了VS2012!在过去,ESET要求我允许VS2012与微软通信,我选择了“拒绝访问”,ESET已经疯狂地拒绝VS2012。我从“ESET规则区域”中省略了这条规则,我的问题就解决了!


0
投票

删除我的“我的文档”文件夹中的IISExpress文件夹,以确保默认设置或在工作正常时将其恢复到以前的版本。


0
投票

<sites> </sites>中删除默认网站

<site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation=":8080:localhost" />
    </bindings>
</site>

和你自己的<site> </site>

并运行"C:\Program Files\IIS Express\iisexpress.exe"

http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-from-the-command-line


0
投票

在VS 2013中,我在“我的文档”上设置Google文档同步后发现此错误。更新权限不是只读和问题解决。


49
投票

解决这个问题的一件事是在<bindings>文件中使用applicationhost.config部分中的以下行:

<bindings>
    <binding protocol="http" bindingInformation="*:8099:" />
</bindings>

关键是简单地删除localhost。请勿使用星号替换它,不要将其替换为IP或计算机名称。结肠后留空。

执行此操作后,我不需要以管理员身份运行Visual Studio,我可以自由地将项目属性中的项目URL更改为本地IP或计算机名称。然后我设置了端口转发,它可以访问Internet。

编辑:

我发现了一个让IIS Express正确提供外部请求非常重要的怪癖。

  1. 如果您以管理员身份运行Visual Studio / IIS Express,则不得使用“netsh http add urlacl ...”命令向HTTP.SYS添加预留。这样做会导致HTTP 503 Service Unavailable错误。删除您在URLACL中所做的任何预订以解决此问题。
  2. 如果未以管理员身份运行Visual Studio / IIS Express,则必须向URLACL添加预留。

0
投票

在调试>网站属性中。

将Project Url中的端口号更改为任何最近的值并保存

enter image description here


0
投票

以管理员身份打开命令提示符,然后执

netsh http show urlacl

您将看到之前添加的URL,现在您应该执行此命令:

netsh http delete urlacl url=http://+:36899/ user=Everyone

使用时请检查列表中的网址:

(netsh http show urlacl)


0
投票

我面对这个问题,我所做的只是去网页项目属性 - > Web - >在ProjectUrl中我点击了“创建虚拟目录”,我的问题得到了解决。


0
投票

我的计算机有很多Windows更新时遇到了同样的问题。

花了几个小时尝试使用上面的答案解决问题没有运气。

在过去,我们有不同的问题,因为反病毒导致应用程序被它阻止,所以考虑尝试禁用它。


0
投票

因此,在尝试所有解决方案后,我只需从我的PC上卸载“One Drive”,问题就解决了。

N.B:

  • 我试图运行.net核心Web应用程序。
  • Visual Studio 2017版本15.9.5
  • Windows 10 Pro,64位

0
投票

单击解决方案,然后按F4。然后匹配端口,右键单击解决方案,然后选择属性到Web选项卡端口。端口号与F4和Properties的情况相同。


30
投票

我有完全相同的问题。尝试了一切,但最后一招成功。

  1. 从“我的文档”中删除文件夹IISExpress
  2. 再次加载项目,它将使用更新的配置再次创建IISExpress文件夹
  3. 检查IISExpress文件夹是否具有足够的权限来读写配置文件
  4. 再次加载项目并运行IISExpress。它应该工作。

10
投票

我正在更改此条目(我的Web服务器未运行,并显示特定端口的访问被拒绝错误)

<bindings>
   <binding protocol="http" bindingInformation="*:61235:localhost" />
</bindings>

在“Documents \ IISExpress \ config”中的“applicationhost.config”中,对于特定的Web应用程序,每当我启动Web应用程序时,它都会被Visual Studio 2012再次覆盖到默认端口。

但是我在applicationhost.config无所事事地解决了这个问题。我刚刚将“项目属性”>“web”>“项目网址”设置从http://localhost:62135/更改为http://localhost:47279/(取决于您的计算机),它对我有用。


10
投票
  1. 关闭你的项目。
  2. 转到文件夹设置,然后选择显示隐藏文件夹选项。
  3. 打开应用程序所在的文件夹。你会看到一个.vs文件夹。
  4. 打开.vs文件夹,你会看到一个config文件夹。删除其内容。
  5. 以管理员模式运行Visual Studio。从File菜单打开您的解决方案。
  6. 清洁你的解决方案
  7. 建立它。
  8. 跑吧,瞧!

我不建议删除IIS Express文件夹或弄乱其中的配置文件。


6
投票

我有同样的问题,但有不同的原因可能会帮助别人。

在管理模式下使用命令提示: - TYPE:netsh http show iplisten如果有任何IP条目: - TYPE:netsh http delete iplisten重复直到列表为空。检查IIS Express是否立即启动。

希望这有帮助,尼尔斯


6
投票

试试这个:

  1. 打开解决方案的属性
  2. 转到网络
  3. 在LOCAL IIS下,将写入的端口号更改为任何其他端口号并创建新的虚拟目录。

5
投票

从applicationhost.config文件中删除不必要的站点条目为我解决了这个问题。


4
投票

对我来说,这是我的项目解决方案文件夹中的applicationhost.config文件夹中的.vs文件(默认情况下隐藏.vs文件夹)。所以,我关闭了项目并删除了.vs文件夹(vs将在您打开项目时再次重新创建它)然后重新打开项目并运行它。

© www.soinside.com 2019 - 2024. All rights reserved.