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

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

< p > <代码> Web应用程序项目mycompany.myapp.mywebproject已配置为使用IIS。无法找到Web服务器http://localhost/MyWebApp。 < /代码> < / p >

我还没有为这个web应用程序手动设置虚拟目录。

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

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

这是我的开发机器设置:

  • Windows 7企业版
  • 服务包1
  • 64位操作系统
  • Visual Studio 2010企业服务包
  • IIS 7.5版
241990 次浏览

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

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

要做到这一点,请转到C:\(Windows)\Microsoft.NET\Framework\(dotnetver)\的相关.net版本的文件夹 (将括号中的文件夹替换为您PC上正确的文件夹)并运行此命令

aspnet_regiis.exe -i

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

iisreset

从命令行可以帮助,有时您不需要这样做。

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

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

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

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

请小心;这不是一个编程问题(也不应该在这里发布),但我发布了这个指导,因为这是一个常见的问题,但我发布的建议是通用的;我列出的命令是正确的,但是你需要在IIS中执行的步骤可能会有所不同,这取决于你的版本和你的帐户权限。

好运!

由于接受的答案需要IIS管理器,而IIS Express没有IIS管理器或任何UI,下面是为您的IIS Express用户提供的解决方案(也应该适用于其他人):

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

在工程文件中,修改如下一行:
<UseIIS>True</UseIIS> < br > 到< br > <UseIIS>False</UseIIS> < br >

.保存文件

现在重新加载你的项目 做。< / p >

然后您就可以打开您的项目了。如果此时,您想使用IIS,只需转到项目属性,单击“Web”选项卡,并选择使用IIS的选项。这里有一个“创建虚拟目录”的按钮。它可能会告诉您需要以管理员身份运行Visual Studio来创建该目录,因此如果需要的话就这样做。

在我的例子中,这个问题是由损坏的IIS绑定引起的。具体来说,我的“http”绑定已被删除。重新创建它解决了这个问题。

在我的情况下,我能够在离线模式下打开解决方案,只需运行命令:

iisreset

我也犯了这个错误。我认为一切都是正确的设置,但我发现有一件事是缺少的:我用于项目的主机名(还)无法解析。

由于我的应用程序从主机名确定当前客户端的名称,所以我使用了像clientname.mysuperapp.local这样的主机名进行开发。当我将开发主机名添加到我的hosts文件时,该项目再次可加载。显然,我必须这样做,但我没有想到VS在加载项目之前检查主机名。

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

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

对于Win8用户来说,如果你按照已接受的答案中的步骤操作,控制台会向你发出一条消息,告诉你“你不应该使用命令行来执行这个命令”(释义)。相反,访问程序&通过控制面板(或Windows + R > appwizc .cpl)的功能,单击“打开或关闭Windows功能”,并确保您安装了以下功能:

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

这将检查一堆其他选项以及。一旦我安装了这些功能,并运行了具有更高权限的VS2012,我就能够成功启动我的应用程序。

尝试使用管理员权限打开Visual Studio。在我的例子中,它提供了对IIS站点的访问,并使这个错误消失了。然后,我可以将项目切换到使用IIS Express,这似乎不需要管理员特权。

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

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

在我的情况下,确保你有一个“默认”网站

在我的例子中,csproj文件中引用的url是不正确的。

它需要以www。作为前缀

我做了更改,保存文件和项目加载良好。

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

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

所以我把它改成:

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

这个解决方案对我来说很有效:右键单击项目并选择编辑并找到如下图所示的以下代码。

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

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

csproj截图

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

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

当我试图从.csproj文件打开一个项目时,这发生在我身上,但我通过从VS打开项目来克服它:

文件>打开>网站

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

对于DNN用户,我的问题是我需要为dnndev绑定。我在80号港口。我有多个运行在不同端口上的安装,VS要求特定的Url存在于端口80(不像我的是86)。

您可以在不设置UseIIS属性值为true的情况下加载项目。 简单地遵循以下步骤:

在mywebproject中。csproj文件——

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

你一定不会相信,start visual studio就像管理员

从信息中可以明显看出

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

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

所以只是restart visual studio作为管理员

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

这对我很有用:-
使你所有的IIS网站指向localhost(all Unassigned)只有

enter image description here

对于我的项目,我必须从.csproj文件中删除这两行

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

我试着只删除第一个,但这还不够。

编辑:正如许多用户指出的那样,这可能会改变你的项目类型或搞乱你的源代码控制程序。我不能调查这些问题,因为这是学校的项目,我已经没有了。 尝试时请小心。

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

<UseIISExpress>false</UseIISExpress>

把它改成真。

<UseIISExpress>true</UseIISExpress>

我通过从下面的链接下载后重新安装IIS Express来解决这个问题:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264

遵循这个完整的解决方案一步一步。这在VS 2017中很适用。

  1. 打开管理员模式命令提示符

  2. 打开文件资源管理器,进入。net Framework文件夹

      Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319
    

    v4.0.30319这是我的。net文件夹。您需要选择相关的文件夹。

  3. 在CMD -进入。net文件夹路径

    cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
    
  4. 在CMD中执行以下命令

    aspnet_regiis.exe -i
    

    你最终可以看到这个消息——完成ASP的安装。净(4.0.30319.0)

    iisreset
    

    你最终可以看到这个消息——互联网服务成功重启

  5. 在您的计算机中打开IIS(如果没有配置遵循这个)

    1. 进入网站,右键单击

    2. < p >添加网站

    3. 填充- 网站的名字并选择物理路径

    4. 然后输入端口号(您可以在.csproj文件中找到端口号,端口号必须等于(IISUrl))

    EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724
    

    请注意:不能创建端口80。因为它使用了默认IIS页面

    1. 单击Ok
  6. 管理员权限打开visual studio

  7. 然后右击并重新加载你的项目

你的问题可能会解决。

这可能会在2020年帮助到一些人。主要问题是CSPROJ文件中的IIS设置与计算机的配置不匹配。例如,如果Web应用程序项目指向localhost:12345,并且没有在该端口上的机器上设置虚拟目录,则会得到此错误。

在使用VS2019时,我遇到了同样的问题,CSProj文件中的IIS设置被忽略了。这是因为CSProj文件中有一个名为“saveserversettingsinuserfile”的新属性:

<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
<UserProperties UseAjaxifiedTemplates="True" UseJQuerySupport="True" />
</VisualStudio>
</ProjectExtensions>

将此设置为TRUE时,IIS/Web服务器属性位于

.CSPROJ。工程名称相同的用户文件。

这允许项目的各个用户拥有自己的IIS设置,前提是该文件没有签入源代码控制。

您可以使用Visual Studio GUI在项目属性中“web”、“将服务器设置应用到所有用户”下控制设置存储的位置。

web项目设置

当它打开时,IIS设置存储在CSPROJ中,当它关闭时,它们存储在CSPROJ中。用户

导致:在项目设置中没有正确反映project.csproj中的IISURL,并且没有创建virtual directory

解决方案:更改Project URL以纠正PORT,并创建Virtual Directory以使缺少的PORT可用。


遵循以下步骤:

步骤1:右键单击项目文件到Edit the project.csproj文件。 enter image description here < / p >

步骤2:搜索IIS,从<UseIIS>True</UseIIS>修改为<UseIIS>False</UseIIS> enter image description here < / p >

步骤3:右键单击项目到Reload the Project。重新加载成功后,右键单击项目并选择Propertiesenter image description here < / p >

步骤4:在属性 =>下查找项目的URL选项;< >强网络 enter image description here < / p >

步骤5:将项目的URL更改为IIS URL,这在错误消息<IISURL>http://localhost:8086 </IISURL>文件中都表示。然后单击创建虚拟目录。<强>保存 enter image description here enter image description here < / p >

步骤6:重做步骤2,这样它就不会影响远程代码库和服务器部署设置。

原来我的IIS在localhost:8181上工作。必须配置{Project}。csproj文件。

    <ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>7386</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>**http://localhost:8181/ProjectName**</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile><EnableWcfTestClientForSVCDefaultValue>True</EnableWcfTestClientForSVCDefaultValue>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>