【问题标题】:Unable to Add .net 3.5 Website to IIS Express无法将 .net 3.5 网站添加到 IIS Express
【发布时间】:2011-09-18 23:02:21
【问题描述】:

所以,我的问题是我有一个相当大的 ASP.NET 3.5 项目,我试图使用 IIS Express 安装在本地运行。我是团队中使用 IIS Express 运行此项目和其他项目的众多开发人员之一,实际上我每天都在运行一个 .NET 4.0 站点(包含本地 SSL),没有任何问题。作为参考,我的机器运行 Windows 7 Ultimate 64 位和 Microsoft Visual Studio 2010,我是本地机器的管理员。 Visual Studio 以管理权限运行,我已确保 inetmgr 中列出的所有应用程序池都在运行。

这是我尝试在本地运行项目时得到的工作流程:

  • 当我第一次运行我的项目时,或者如果我删除 Microsoft WebMatrix(IIS Express 的配置实用程序,类似于 inetmgr)中列出的任何站点,我会收到以下消息序列:

(1) 来自 Microsoft Visual Studio 的“是-否”对话框,其中指出,

The local IIS URL @987654321@ specified for Web project My.Web.Project has not been configured. In order to open this project the virtual directory needs to be configured. Would you like to create the virtual directory now?

(2) 此时,我点击“是”。来自 VS 的中间窗口会弹出一个加载栏,达到 50% 左右,然后 VS 会弹出一个警告对话框,内容如下:

Configuring Web @987654322@ for ASP.NET 3.5 failed. You must manually configure this site for ASP.NET 3.5 in order for the site to run correctly. Visual Studio cannot detect whether this virtual root has been configured for use with ASP.NET 2.0 The likely cause is that you do not have sufficient privileges to access the IIS metabase. You may need to manually configure this site for ASP.NET 2.0 in order for your site to run correctly.

(3) 此时我只能单击“确定”或“帮助”,因此我单击“确定”继续。它继续对我的解决方案中配置为在 IIS Express 本地运行的任何其他项目执行相同的过程.

  • 当我尝试通过按 CTRL-F5 在本地运行站点时,我收到一个错误对话框,内容为 Unable to launch the IIS Express Web Server
  • 当我尝试在 Microsoft Web Matrix 中查看有关该站点的详细信息时,我从 WebMatrix 收到一条错误消息,内容为:An error caused WebMatrix to shut down. Error message: Invalid application pool name
  • 此错误消息是正确的,除非我查看 IIS Express 配置文件 (C:\%User Dir%\My Documents\IISExpress\config\applicationhost.config),在 <sites> 部分中,每个应用程序都有<application> 标记,仅指定了 path 属性,未指定 applicationPool 属性。 (相反,在 IISExpress 上运行的 4.0 应用程序指定了此属性)。
  • applicationPool 属性添加到站点后,我可以在WebMatrix 中打开/查看/编辑其详细信息,但仍无法在本地运行。

那么,我做错了什么或者我的机器上的什么配置不正确导致我无法运行,但没有其他开发人员使用相同的代码?

【问题讨论】:

    标签: c# asp.net .net-3.5 iis-express


    【解决方案1】:

    我在 VS 2017 中遇到了这个问题,在没有安装 IIS 的机器上。所以找到应用程序池设置更难。

    我曾尝试将网站回滚到 .NET Framework 2.0。工作量超过了它的价值,所以放弃了那个分支,回到我以前使用 4.6.1 的 git 分支。但是 IIS Express 一直在尝试以 2.0 运行!

    终于找到设置的地方了。它位于解决方案文件夹下:.vs\config\applicationhost.config

    然后找到我的网站(“CBR_Report”),设置:applicationPool="Clr2IntegratedAppPool"。

    <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 name="CBR_Report" id="2">
                <application path="/" applicationPool="Clr2IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\Code\Cost_Based_Rate\CBR_Report" />
                </application>
    

    【讨论】:

      【解决方案2】:

      对于应用程序,如果未明确指定 appPool,则将使用默认 apppool。在 IIS Express 中,默认应用程序池是 Clr4IntegratedAppPool

      &lt;applicationDefaults applicationPool="Clr4IntegratedAppPool" /&gt;

      如果您的应用程序不是 .net 4.0 应用程序,请进行相应设置。如果您的应用程序是 2.0 应用程序,则将 appPool 设置为“Clr2IntegratedAppPool”。

      下面给出的是在 IIS Express 配置中预定义的应用程序池。

      Clr4IntegratedAppPool
      Clr4ClassicAppPool
      Clr2IntegratedAppPool
      Clr2ClassicAppPool
      

      【讨论】:

      • 但是对于我没有明确指定 appPool 的应用程序,当我尝试在 WebMatrix 中查看它时出现错误,它说该应用程序的 appPool 名称无效。这是 WebMatrix 还是 IISExpress 的故障?我在我的 applicationhost.config 文件 FWIW 中看不到 applicationDefaults。
      • 你在 VS 中运行过这个网站吗?可能 VS 让您的 applicationhost.config 处于某种不一致的状态(因为它未能设置正确的应用程序池)!
      【解决方案3】:

      所以,当我写完这个问题时,我实际上解决了这个问题。在确定配置文件的详细信息时,我意识到项目的设置方式,在配置的第一个站点中定义了两个应用程序(一个是提供数据检索的服务,另一个是成熟的website),所以我只为三个应用程序中的两个提供了缺少的 applicationPool 属性。

      如果我能弄清楚为什么它缺少所需的 appPool 属性,我会更新这个答案。希望这对其他人也有帮助!

      【讨论】:

      • 这是我上面问题的准确答案,但我给了@vikomall答案,因为他的答案更广泛,而且对情况的解释也更好,所以我认为长期他的回答总体上会帮助更多的人。此外,我的答案仍然会出现在我遇到过同样问题的那个可怜的人身上。当我执行全新的系统安装时,我没有遇到这个问题。
      猜你喜欢
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2010-11-19
      • 2011-01-14
      • 2017-08-31
      • 1970-01-01
      相关资源
      最近更新 更多