c# - net发布到iis - 尝试确定承载你的应用程序的进程id dotnet exe时出错




Web应用程序项目被配置为使用IIS。 无法找到Web服务器。 (16)

当我打开解决方案时,我的解决方案文件中有一个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企业服务包1
  • IIS版本7.5

你不会相信,以管理员身份start visual studio

从消息中可以明显看出

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

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

所以只需以管理员身份restart Visual Studio


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

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

为此,请转到c:\(windows)\ microsoft.net \(dotnetver)\中的相关.net版本文件夹(将括号内的文件夹替换为PC上正确的文件夹)并运行此命令

aspnet_regiis.exe -i

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

iisreset

从命令行帮助,有时你不需要。

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

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

确保虚拟目录的名称是'MyWebApp'!

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

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

祝你好运!


在我的情况下,IIS中的“默认网站”在端口80上没有本地主机的绑定。您应该为.csproj文件中的任何值创建绑定。


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

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

所以我将它改为:

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

在我的情况下,这个问题是由IIS绑定破坏引起的。 具体来说,我的'http'绑定已被删除。 重新创建它可以解决问题。


如果你通过TFS连接,打开你的project.csproj.user文件并检查

<UseIISExpress>false</UseIISExpress>

并将其更改为true。

<UseIISExpress>true</UseIISExpress>

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

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

这也将检查一堆其他选项。 只要我安装了这些功能,并以提升的权限运行VS2012,我就能够成功启动我的应用程序。


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

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

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


就我而言,我能够在离线模式下打开解决方案,只需运行以下命令:

iisreset

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

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


您可以加载项目,而无需将属性UseIIS的值设置为true。 只需遵循以下步骤:

在mywebproject.csproj文件中 -

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


我也有这个错误。 我认为所有的设置都是正确的,但是我发现缺少一件东西: 我用于我的项目的主机名不是(还)可以解析的。

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


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


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


由于接受的答案需要IIS管理器,并且IIS Express没有IIS管理器或任何用户界面,因此以下是适用于IIS Express用户的解决方案(并且应该适用于其他人):

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

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

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

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

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


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

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




iis