【问题标题】:web application exists on both the local IIS web server and the IIS Express web serverWeb 应用程序存在于本地 IIS Web 服务器和 IIS Express Web 服务器上
【发布时间】:2013-05-17 18:32:40
【问题描述】:

从表面上看,这很像I want to use iis 7 instead of iis express in visual web developer 2010Visual Studio USE LOCAL IIS WEB SERVER issue with IIS 7.5

但是,我的问题是 applicationhost.config 中没有该应用程序的条目,并且 IIS 下没有指向该项目的应用程序。

另外,当我在项目属性 -> 网页选项卡下更改“项目网址:”上的 URL 时,我得到同样的错误 - 无论我输入什么。

完整的原始错误消息(注意,更改为 MyServer.com,因为链接无法指向 LocalHost)

[无法创建虚拟目录。 URL 'http://MyServer.com/MyTestProject' 的站点同时存在于本地 IIS Web 服务器和 IIS Express Web 服务器上。您需要编辑 'C:\Users\XXXXX\Documents\IISExpress\config\applicationhost.config' 文件以更改 IIS Express 使用的端口号,或使用 IIS 管理器更改此站点在 IIS 中的绑定。 ]

我可以将其更改为“http://MyServer.com/SuperLongRandomName10985486”,但仍然出现相同的错误,但现在使用新的 url。

是的,我正在以管理员身份运行 VS

有些东西似乎“卡住了”

【问题讨论】:

    标签: asp.net visual-studio iis iis-express


    【解决方案1】:

    尝试删除applicationhost.config 或将其移至其他文件夹,对我有用。

    在我的情况下,问题是该项目被另一个开发人员设置为在本地 IIS 上启动。

    【讨论】:

    • @Isp OP 应该这样做,但如果他不这样做,也许你的回答不能解决他的问题。不过是我的,这就是我支持你的原因:)
    • 我只需要编辑 "%USERPROFILE%\Documents\IISExpress\config\applicationhost.config" 中的 applicationhost.config 并从配置中删除网站。
    • 不,这不是我问题的答案,我实际上评论说 applicationhost.config 文件不是原始帖子中的问题。两个链接的问题都谈到了 applicationhost.config 文件,我指出他们的解决方案不起作用。这就是为什么它不仅不是被接受的答案,而且我也反对它。
    • 我遇到了这个问题,将文件重命名为 applicationhost.config.DO NOT USE,然后,我可以再次打开该项目。我的问题是我在没有安装/打开 IIS 的新机器上打开了 VS 中的代码,所以我猜它有用地跑掉并做了一堆 IIS Express 的事情。它使自己成为一个新的 applicationhost.config 但似乎对我使用该项目没有影响,所以我忽略了这一点。
    • 此已修复的另一种情况:我机器上的错误组策略更新破坏了我的本地管理员权限,这显然将我的发布滚动到 IISExpress(字面上从未运行过一次)而没有通知我。
    【解决方案2】:
    • 关闭解决方案

    • 删除C:\Users\<username>\Documents\IISExpress\config中的文件

      目录。

    • 打开解决方案

    【讨论】:

    • 没有这样的目录。 C:\users\temp\Documents 是的,IISExpress\config,没那么多。
    • 修复了我的问题,我在 C:\Users\\Documents\IISExpress\config 中找到了它
    • C:\Users\\Documents\IISExpress\ - 找不到 Director :(
    • 在 C:\Users\\My Documents\IISExpress\config 文件夹结构下找到 applicationhost.config 文件
    【解决方案3】:

    在记事本中编辑 ****.sln 文件并将以下设置更改为 FALSE

    <UseIISExpress>false</UseIISExpress>
    

    (会有多个实例。)

    只要我这样做了,我的项目就可以正常加载了。

    【讨论】:

    • 设置为“UseIIS”
    • 这是我的.proj 文件。
    【解决方案4】:

    对我来说是:删除 *.csproj.user 文件!

    【讨论】:

    • 我也是。我有以下内容:``` true ``` 这覆盖了主 .csproj 文件。
    【解决方案5】:

    无需删除applicationhost.config文件

    我在 IIS 绑定以及 Visual Studio 项目 URL 中指定了主机名。

    尝试从 IIS 绑定中删除主机名并将其留空。 它对我有用!!! 没有显示错误,我也可以从 IIS 加载解决方案和浏览

    【讨论】:

      【解决方案6】:

      我还必须更改 iis express bindinginfo 端口:

      C:\Users\USERNAME\Documents\IISExpress\config\applicationhost.config 来自 iis 使用的 80。在下面的示例中,我将 80 更改为 3486...

      <site name="yoursite-Site" id="108">
      <other things removed just to get to showing you the bindingInfo...
      <bindings>
          <binding protocol="http" bindingInformation="*:3486:localhost" />
      </bindings>
      </site>
      

      【讨论】: