Web应用程序项目[…]配置为使用IIS。找不到Web服务器[…]。


285

打开解决方案时,我的解决方案文件中有一个“不可用”的Web项目。当我右键单击Web项目并重新加载该项目时,出现以下错误:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

我尚未为此Web应用程序手动设置虚拟目录。

每个同事,Visual Studio应该提示我创建虚拟目录,但并没有得到提示。

我在开发机器上安装IIS之前先安装了VS2010。

这是我的开发机器设置:

  • Windows 7企业版
  • Service Pack 1
  • 64位操作系统
  • Visual Studio 2010企业Service Pack 1
  • IIS 7.5版

Answers:


87

发生这种情况时,最简单的解决方案是手动创建虚拟目录。

首先,您需要确保已安装正确版本的ASP.Net,并且已安装IIS扩展。

为此,请转到C:\(Windows)\ Microsoft.NET \ Framework \(dotnetver)\中相关.net版本的文件夹(用括号括起来的文件夹替换PC上的正确文件夹),然后运行此命令

aspnet_regiis.exe -i

接下来,一旦运行并完成,有时会运行

iisreset

通过命令行帮助,有时不需要。

接下来,转到IIS管理器并找到本地主机网站,然后选择添加文件夹。浏览到项目中包含实际ASP.Net项目的文件夹,然后添加该文件夹。

最后,右键单击添加的文件夹,您应该有一个选项,显示“转换为应用程序”或“创建虚拟目录”或类似内容。

!!确保虚拟目录的名称为“ MyWebApp”!

重新加载您的解决方案,它应该可以工作。

请保持警惕;这不是编程问题(不应真正在此处发布),但我已经发布了此指南,因为它是一个常见问题,但是我发布的建议是通用的;我列出的命令是正确的,但是您在IIS中需要执行的步骤可能有所不同,具体取决于您的版本和您的帐户权限。

祝好运!


我按照指示进行操作,并收到以下错误。.由于出现此错误,我删除了虚拟目录。无法添加类型为“添加”的重复集合条目,且其唯一键属性“名称”设置为“ Telerik_Web_UI_WebResource_axd”
dotnet-practitioner

启动解决方案时,是由IIS还是Visual Studio导致了该错误?
Russ Clarke

另外,请检查web.config中新的asp.net项目,它对“ Telerik.WebResource.axd”有两个或多个引用,只需要一个。
Russ Clarke

当删除有问题的条目时,我确实检查了web.config ..,然后收到错误消息,指出需要删除的条目。
dotnet-practitioner

即将针对新的错误消息发布一个单独的问题
dotnet-practitioner 2012年

523

由于可接受的答案需要IIS管理器,并且IIS Express没有IIS管理器或任何UI,因此这是为IIS Express用户提供的解决方案(并且也应适用于其他所有人):

当您打开Visual Studio并收到错误消息时,右键单击项目解决方案资源管理器,然后选择“编辑{ProjectName} .csproj”

在项目文件,更改以下行:
<UseIIS>True</UseIIS>

<UseIIS>False</UseIIS>
保存文件。

现在重新加载您的项目。
做完了

然后,您将可以打开您的项目。如果此时要使用IIS,只需转到项目属性,单击“ Web”选项卡,然后选择使用IIS的选项。那里有“创建虚拟目录”按钮。它可能会告诉您,您需要以管理员身份运行Visual Studio来创建该目录,因此如果需要,请执行此操作。


33
在VS2010中,UseIIS不在csproj文件中,而是在.csproj.user文件中
oleksa 2013年

2
在我的情况下,我仍然想使用IIS,所以我只是更改了URL,非常感谢。
kjetilh

升级和移动时出现此问题。这对我有用,尽管由于未加载解决方案,所以我仅在文本编辑器中打开了csproj。谢谢道格。
Kieran 2013年

2
这是正确的答案。该项目被配置为同时使用IIS和IISExpress。
亚伦·里德

2
使用VS2013,右键单击解决方案时看不到Edit {ProjectName} .csproj。我通过转到文件系统并手动编辑.csproj文件来完成编辑。它是只读的,所以我不得不跳一点舞,但确实奏效了。
Al Lelopath 2014年

222

打开项目文件夹并删除{Project} .csproj.user,然后在Visual Studio上重新加载该项目。


2
我是我们团队中唯一看到此IIS错误的人。与我一起工作的开发团队在源代码管理中具有相同的.csproj文件,因此上述其他解决方案不是我的问题所在。原来,您提到的.csproj.user文件在我的情况下导致了此错误。谢谢!
我的

3
在尝试了大多数其他方法之后,这对我有用
David

3
这是正确的答案。它解决了计算机上项目配置的问题(在使用TFS时尤其重要)。
Markus 2014年

1
如果您已设置自定义iisurl标记,但项目仍在本地主机<IISUrl> MachineName.domain:12345 / </ IISUrl >上启动
lsp

5
这个为我工作。我的情况下没有<UseIIS>设置。
Techgration 2014年

33

该解决方案对我有用:右键单击“项目”,然后选择“编辑”,然后找到以下代码,如下图所示。

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

要么

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

csproj屏幕截图


30

对我来说,我不得不从.csproj文件中删除这两行

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

我尝试仅删除第一个,但还不够。

编辑:正如许多用户所指出的那样,这可能会更改您的项目类型或使您的源代码管理程序混乱。我无法调查这些问题,因为这是我没有的学校项目。尝试此操作时请小心。至少复制您删除的内容。


9
这一工作奏效了,这一工作应标记为答案。我尝试了SO中建议的许多解决方案,但除了这一解决方案之外,没有其他解决方案对我有用。
Bose_geek

3
在尝试了以上所有建议之后,这才是对我真正有用的建议。谢谢你,老兄!
高贵的野蛮人

2
这将更改为项目类型,因此不再是Web应用程序。
奥兰姆

3
从.csproj文件中删除<ProjectGuid>不是一个好主意。要加载项目,仅删除<ProjectTypeGuids>就足够了,这也是一个坏主意,因为它更改了项目类型,如@Oram所述。如果您不想提交更改,只需查看VS中的代码,此答案很好。
elshev '19

1
这解决了我在承包商将开发的Visual Studio 2010解决方案迁移到2013时遇到的解决方案资源管理器加载错误。Web应用程序和Web服务。我都无法加载,因此在尝试打开解决方案文件后,解决方案资源管理器仅显示两个空文件夹。一旦注释掉建议的ProjectGuid和ProjectTypeGuids行,便可以在解决方案资源管理器中看到这些项目的依赖关系。对我来说,这是一种低风险,高回报的选择,因为我可以轻松撤消这些更改。谢谢!
JohnH

26

编辑.csproj或vbproj文件。查找并替换这些条目

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>

1
我也不得不DevelopmentServerPort更改为80以外的值
JoshNaro

1
并且,如果在csproj文件中找不到设置。打开.csproj.user文件,然后在此处执行。
devzero '16

10

就我而言,此问题是由IIS绑定损坏引起的。具体来说,我的“ http”绑定已被删除。重新创建它可以解决问题。


我遇到了一个非常类似的问题。我的HTTP绑定似乎有一天会重命名-_-项目文件的设置<IISUrl>没有更改(感谢SVN确认我的记忆和理智),但是iis绑定却有所更改。修复它并立即加载投影。
Patrick M

另外,请记住检查由于某种原因是否更改了目标站点的sni /主机名。这引起了我的错误。
juarola 2015年

5

尝试使用管理员权限打开Visual Studio。以我为例,它可以访问IIS站点,并且使此错误消失。然后,我能够将项目切换为使用IIS Express,而后者似乎不需要管理员权限。



5

如果通过TFS连接,请打开project.csproj.user文件并检查是否存在

<UseIISExpress>false</UseIISExpress>

并将其更改为true。

<UseIISExpress>true</UseIISExpress>

尽管我觉得这比实际的解决方案更能解决问题,但在解决了我的紧迫问题后还是竖起了大拇指。
南顿

做得很好:)
Hammad Sajid

4

您可以加载项目而无需将UseIIS属性的值设置为true。只需按照以下步骤操作:

在mywebproject.csproj文件中-

删除标签<IISUrl> http:// localhost / MyWebApp / </ IISUrl>并保存文件。该应用程序将自动为其分配默认端口。


4

您不会相信, startVisual Studio作为管理员

从消息中可以明显看出

找不到Web服务器“ http:// localhost / MyWebApp ”。

找不到,因为可能 it has no privileges to see it

所以只是restartvisual studio作为管理员


3

在我的情况下,我想从http切换到https,所以我已经从IIS中删除了http。在我的.csproj.user文件中,我仍然有:

<IISUrl>http://localhost/</IISUrl>

所以我将其更改为:

<IISUrl>https://localhost/</IISUrl>


2

对于在那里的Win8用户,如果您按照接受的答案中的步骤进行操作,则控制台会向您吐出一条消息,说“您不得使用命令行执行此命令”(措辞)。而是通过“控制面板”(或Windows + R> appwiz.cpl)访问“程序和功能”,单击“打开或关闭Windows功能”,并确保已安装以下组件:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

这还将检查许多其他选项。安装这些功能并以提升的权限运行VS2012后,我就能够成功启动我的应用程序。


2

当我尝试从.csproj文件打开项目时,会发生这种情况,但是我通过从VS打开项目来克服它:

文件>打开>网站

然后选择包含我的项目的目录。


1

我也有这个错误。我以为一切设置正确,但是我发现缺少一件事:我的项目所用​​的主机名(尚未)可解析。

由于我的应用根据主机名确定当前客户端的名称,因此我使用了类似于clientname.mysuperapp.local开发的主机名。当我将开发主机名添加到hosts文件中时,该项目可以再次加载。显然,无论如何我还是必须这样做,但是我没有想到VS在加载项目之前会检查主机名。


1

检查是否已安装IIS Express。如果缺少IIS Express,Visual Studio可能会放弃设置<UseIISExpress>false</UseIISExpress>并仍在寻找Express。


1

就我而言,请确保您拥有“默认”网站


1

在我的情况下,IIS中的“默认网站”在端口80上没有本地主机的绑定。无论.csproj文件中的值是什么,都应具有绑定。


1

从以下链接下载后,我通过重新安装IIS Express来解决此问题:

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48264


1
这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。- 来自评论
FluffyKitten

@FluffyKitten我有与OP相同的错误,我尝试了所有其他答案,但重新安装IIS Express却无济于事。因此,我相信这是我对《任择议定书》问题的回答。重新安装IIS。
马修,

您的回答被标记为质量低,并且正在审阅过程中(请注意评论结尾处的“来自审阅”)。尽管可能有效,但在没有其他方法可解决的情况下,重新安装软件是最后的选择,并且不是解决此OP问题的特定解决方案。
FluffyKitten

如果这是最后的选择,而其他任何方法都没有起作用,那么根据Ajay2707的说法,对于穷人来说,其他答案都没有可能。那么,我认为这个答案可能会有用。当对某些人唯一有效的答案时,如何将其指定为低质量?我支持你Ajay2707。感谢您抽出宝贵的时间为社区做出贡献。
nardnob

Inb4,此对话的质量较低,因此已被移动/删除。维瓦拉抵抗!
nardnob

0

就我而言,csproj中引用的网址文件中不正确。

它必须以www为前缀

我进行了更改,保存了文件,并很好地加载了项目。


0

<ProjectTypeGuids>.csproj文件中的元素包含单元测试项目GUID:时,我遇到了这个问题{3AC096D0-A1C2-E12C-1390-A8335801FDAB}

删除它使项目加载没有问题。


0

对于DNN用户,我的问题是我需要在端口80上绑定dnndev.me。我必须在不同的端口上运行多个安装,而VS要求该特定的URL必须在端口80上存在(而不是像我这样的86)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.