首页 文章

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

提问于
浏览
46

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

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

  • 将以下预留添加到HTTP.SYS:

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

  • 以管理员身份运行Visual Studio 2012(从技术上讲,我不认为自从我手动设置HTTP.SYS后就不应该这样做了) .

  • 禁用Windows防火墙 .

  • 删除我的“我的文档”文件夹中的IISExpress文件夹以确保默认设置 .

  • 允许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开发人员实例,以进行远程测试 .

23 回答

  • 50

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

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

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

  • 5

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

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

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

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

    EDIT:

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

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

    • 如果您是 not 以管理员身份运行Visual Studio / IIS Express,则 must 将保留添加到URLACL .

  • 3

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

    • 从"My Documents"删除文件夹IISExpress

    • 再次加载项目,它将使用更新的配置再次创建IISExpress文件夹

    • 检查IISExpress文件夹是否具有足够的权限来读写配置文件

    • 再次加载项目并运行IISExpress . 它应该工作 .

  • 1

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

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

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

    但是我在_812025中无所事事地解决了这个问题 . 我刚刚将"project properties"> "web"> "project url"设置从 http://localhost:62135/ 更改为 http://localhost:47279/ (取决于您的计算机),它对我有用 .

  • 0
    • 关闭您的项目 .

    • 转到文件夹设置,然后选择显示隐藏文件夹选项 .

    • 打开应用程序所在的文件夹 . 您将看到 .vs 文件夹 .

    • 打开 .vs 文件夹,您会看到一个 config 文件夹 . 删除其内容 .

    • 以管理员模式运行Visual Studio . 从 File 菜单打开您的解决方案 .

    • 清洁您的解决方案 .

    • 构建它 .

    • 跑吧瞧!

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

  • 2

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

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

    希望这有帮助,尼尔斯

  • 6

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

  • 29

    试试这个:

    • 打开解决方案的属性

    • 转到网络
      在LOCAL IIS下

    • ,将写入的端口号更改为任何其他端口号并创建新的虚拟目录 .

  • 0

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

  • 0

    只需启动您的Visual工作室为 Run as Administrator

    谢谢,

  • 0

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

    • 从“MyDocuments”中删除iisexpress文件夹

    • 转到解决方案资源管理器 - >右键单击项目 - >转到属性 - >转到Web选项卡 - >查看服务器 - >单击单选按钮“USe Visual Studio Developtment Server”

    我希望这能帮到您 .

  • 0

    我用以下步骤修复它:

    • 关闭Visual Studio

    • 运行 netsh http show urlacl 并查看是否列出了您的应用程序http地址/端口 .

    • 使用上一个命令显示的 Reserved URL 运行 netsh http delete urlacl url=[ADDRESS] 替换 [ADDRESS] . 例如 http://+:17560/

    • 再次运行VS(作为管理员),然后转到Web项目的 Properties - > Web ,然后单击 Create Virtual Directory 按钮 .

    • 现在您应该可以运行Web项目了 .

  • 0

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

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

  • 4

    我在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 was blocking VS2012! 过去,ESET曾让我允许VS2012与微软通信,我选择"Deny Access"并且ESET疯狂地拒绝VS2012 . 我从"ESET rules zone"省略了这个规则,我的问题解决了!

  • 2

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

  • 5

    <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文档同步后看到此错误 . 更新权限不是只读和问题解决 .

  • 10

    在调试>网站属性中 .

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

    enter image description here

  • 10

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

    netsh http show urlacl
    

    你会看到你之前添加的url,你应该执行这个命令:

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

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

    (netsh http show urlacl)

  • 0

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

  • 47

    我的计算机有大量的Windows更新时遇到了同样的问题 .

    花了几个小时尝试使用上述答案解决问题,没有运气 .

    在过去,我们有不同的问题,因为 anti-virus 导致应用程序被它阻止,所以想到 disabling 尝试 .

相关问题