“无法启动IIS Express Web服务器”错误
尝试从Visual Studio启动IIS Express时收到此错误,该项目configuration为侦听localhost以外的地址。 在发出错误“无法启动IIS Express Web服务器”之前,Visual Studio冻结约30秒。
我已经尝试了所有类似问题的解决scheme,我想我已经做了一切正确的事情。 以下是我所采取的步骤:
-
将以下预留添加到HTTP.SYS:
netsh http add urlacl url=http://+:36899/ user=Everyone
-
以pipe理员身份运行Visual Studio 2012(技术上我不认为我应该甚至必须手动设置HTTP.SYS)。
-
禁用Windows防火墙。
-
删除我的我的文档文件夹中的IISExpress文件夹以确保默认设置。
-
允许Visual Studio在我的web项目的applicationhost.config中创build条目。 然后手动编辑configuration文件将
localhost
更改为192.168.0.100
,这是我的本地IP。 然后返回到Visual Studio中的项目属性,并将localhost更改为IP并保存该项目,以便我的项目现在设置为http://192.168.0.100:36899
。
我也尝试改变端口,并重复上述步骤,只是因为某些原因端口被使用。
我想让我的IIS Express开发者实例可以通过Internet上的IP进行远程testing。
有一件事是我解决这个问题是在我的网站在applicationhost.config
文件的<bindings>
部分中使用以下行:
<bindings> <binding protocol="http" bindingInformation="*:8099:" /> </bindings>
关键是简单地删除本地主机。 不要用星号replace它,不要用IP或计算机名称replace它。 冒号之后留空。
这样做后,我不需要以pipe理员身份运行Visual Studio,我可以自由地将项目属性中的Project Url更改为本地IP或计算机名称。 然后,我设置端口转发,并可以访问互联网。
编辑:
我发现了一个让IIS Express能够正确处理外部请求很重要的怪癖。
-
如果以pipe理员身份运行Visual Studio / IIS Express,则不能使用“netsh http add urlacl …”命令向HTTP.SYS添加保留。 这样做会导致HTTP 503服务不可用错误。 删除您在URLACL中所做的任何保留来解决这个问题。
-
如果您没有以pipe理员身份运行Visual Studio / IIS Express,则必须向URLACL添加预留。
如果使用VS2015删除以下文件
<<path_to_solution_folder>>\.vs\config\applicationhost.config
注意.vs文件夹可能被隐藏
我有完全相同的问题。 试了一下,但最后一个窍门奏效。
- 从“我的文档”中删除文件夹IISExpress
- 再次加载你的项目,它会再次使用更新的configuration创buildIISExpress文件夹
- 检查IISExpress文件夹是否具有足够的权限来读写configuration文件
- 再次加载项目并运行IISExpress。 它应该工作。
我正在改变这个条目(为此,我的networking服务器没有运行,并显示特定端口的访问被拒绝错误)
<bindings> <binding protocol="http" bindingInformation="*:61235:localhost" /> </bindings>
在“ Documents \ IISExpress \ config ”中的“ applicationhost.config ”中,对于特定的Web 应用程序 ,每当我开始我的Web 应用程序时 ,它将被Visual Studio 2012重写为默认端口。
但是我通过在applicationhost.config
无所事事解决了这个问题。 我只是将“项目属性”>“网站”>“项目URL”设置从http://localhost:62135/
改为http://localhost:47279/
(取决于您的计算机),它为我工作。
- closures你的项目。
- 转到文件夹设置并select显示隐藏文件夹选项。
- 打开您的应用程序所在的文件夹。 你会看到
.vs
文件夹。 - 打开
.vs
文件夹,你会看到一个config
文件夹。 删除其内容。 - 以pipe理员模式运行Visual Studio。 从
File
菜单中打开您的解决scheme。 - 清理你的解决scheme
- build立它。
- 运行它,瞧!
我不build议删除IIS Express文件夹或搞乱configuration文件。
我有同样的问题,但有不同的原因可以帮助别人。
在pipe理员模式下使用命令提示符: – TYPE:netsh http show iplisten如果有任何IP条目: – TYPE:netsh http delete iplisten重复,直到列表为空。 检查IIS Express现在是否启动。
希望这有助于尼尔斯
从applicationhost.config文件中删除不必要的站点条目解决了我的问题。
尝试这个:
- 打开解决scheme的属性
- 转到网页
- 在LOCAL IIS下,将写入端口号更改为任何其他端口号并创build一个新的虚拟目录。
对我来说,它是我的项目解决scheme文件夹中的.vs
文件夹中的applicationhost.config
文件( .vs
文件夹是默认隐藏的)。所以,我closures了项目并删除了.vs
文件夹(vs会在你打开项目),然后重新打开项目并运行它。
我使用以下步骤修复了它:
- closuresVisual Studio
- 运行
netsh http show urlacl
,看看你的应用程序的http地址/端口是否列出。 - 运行
netsh http delete urlacl url=[ADDRESS]
一个命令显示的保留URLreplace[ADDRESS]
。 例如http://+:17560/
- 再次运行VS(作为pipe理员),然后转到Web项目的属性 – > Web然后点击创build虚拟目录button。
- 现在你应该可以运行Web项目了。
在我的情况下,我试图解决这个问题。
-
从“MyDocuments”中删除iisexpress文件夹
-
转到解决scheme资源pipe理器 – >右键单击项目 – >转到属性 – >转到Web选项卡 – >查看服务器 – >单击单选button“USe Visual Studio Developtment Server”
我希望这能帮到您。
我花了1小时尝试上面提到的每一个配方。 然后从没有重新启动我的电脑,并再次尝试。 现在一切都好了。
所以请尝试所有上述解决scheme之前尝试重新启动您的计算机。 这可能有帮助
我遇到了与Visual Studio 2012相同的问题。我设法通过从C:\ Program Files(x86)\ IIS Express \ AppServer \ applicationhost.configpath中删除不需要的站点条目来解决此问题。 随着pipe理员运行我的VS2012。 希望这可以帮助
在开始时,尝试禁用您的防火墙。 它帮助了我。 Eset Smart Security 5将其屏蔽。
前几天我有这个问题,以上所有项目都不能帮助我。 我在我的SONY VAIO笔记本电脑上安装了ESET Smart Security 5.0,该笔记本电脑以交互模式工作! 最后我发现这个问题, ESET阻塞了VS2012! 过去,ESET曾经要求我允许VS2012与微软进行沟通,我select了“拒绝访问”(Deny Access),而ESET曾否认VS2012的规则。 我从“ESET规则区域”中省略了这个规则,我的问题解决了!
删除我的文档文件夹中的IISExpress文件夹,以确保默认设置或恢复到以前的版本,当它工作正常。
从<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
在VS 2013中,我在“我的文档”上设置Google文档同步后发现此错误。 更新后的权限不能为只读并且问题已解决。
在debugging>网站属性。
将Project Url中的端口号更改为任何最接近的值并保存
以pipe理员身份打开命令提示符然后执行此命令
netsh http show urlacl
你会看到你已经添加的url现在你应该执行这个命令:
netsh http delete urlacl url=http://+:36899/ user=Everyone
使用时请检查列表中的url:
(netsh http显示urlacl)
我面对这个问题,我所做的只是去Web项目属性 – > Web – >在ProjectUrl我点击“创build虚拟目录”,我的问题已修复。