【问题标题】:Why is IIS 8.0 Express using the old project names after rename in Visual Studio 2012为什么 IIS 8.0 Express 在 Visual Studio 2012 中重命名后使用旧项目名称
【发布时间】:2012-09-03 19:26:22
【问题描述】:

在命名混乱之后,我的团队决定重命名一些项目以及项目中所有现有代码文件的命名空间。 (在 Visual Studio 2012 中)

我们改变了:

  • 项目名称
  • 项目属性中的程序集名称、默认命名空间、标题和产品条目
  • 重命名的每个项目中每个代码文件的命名空间
  • 修改后的命名空间的所有 using 语句
  • 清除 /bin 目录中的旧 .dll 文件(让路由引擎找不到多个控制器)
  • 实际文件夹本身,需要删除项目并将其重新添加到解决方案中(并重新引用已重命名的项目)

在这一切之后,IIS 8.0 Express 仍然坚持使用旧的项目名称作为站点名称(在本地调试时)。我该如何解决这个问题?

编辑: 真正的问题是:IIS 8.0 Express 如何确定站点名称

这是从(一个)网站的 .csproj 文件中截取的片段

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

...站点名称没有任何内容。

【问题讨论】:

标签: c# asp.net-mvc-4 project iis-express


【解决方案1】:

问题根本不在项目中。

在applicationhost.config文件(iis.net link)中,通常在

(user-dir)\My Documents\IISExpress\config\applicationhost.config

网站有一些设置。只需更改站点的名称属性即可。

       <site name="MvcApplication1" id="3">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="(whateverpath)\My Documents\Visual Studio 2012\Projects\MvcApplication1\MvcApplication1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:57733:localhost" />
            </bindings>
        </site>

【讨论】:

  • 除了Christopher Stevenson 所说的之外,我还必须删除 applicationhost.config 中的另一个 &lt;location&gt; 条目。出于某种原因,我在重命名时采取的步骤使旧条目保留了旧名称添加了一个新条目。我建议在该文件中搜索旧项目名称的任何其他实例。
【解决方案2】:

您还必须在 csproj 文件和 sln 文件(它们基本上是 VS 使用的带有文件扩展名的 xml 文件)中查找和更改这些名称。

首先,也是最重要的,备份所有资料,以防万一。接下来,对 csproj/sln 文件中的旧名称(希望它们没有被称为“if”之类的名称)进行文本搜索。更改名称,然后尝试启动。

我不知道执行此操作的工具或自动化方式,但如上所述,我已经成功地手动完成了此操作。

【讨论】:

  • 旧名称已通过上述步骤删除:相关 .csproj 和 .sln 文件中不存在原始名称空间和/或项目名称的文本字符串。 (我刚刚用记事本++检查过)
【解决方案3】:

您是否重新配置了 IIS Express?在项目属性的 web 选项卡上,单击“创建虚拟目录”

【讨论】:

  • 不幸的是,单击创建虚拟目录并不足以更改 IIS 为网站显示的名称
  • 您可能必须从 IIS Express 中删除虚拟目录,然后重新创建它。进入 My Documents\IIS Express 文件夹中的 applicationhost.config 并删除它的条目。记得关闭 IIS Express。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 2011-06-01
  • 2014-11-13
  • 2014-03-23
相关资源
最近更新 更多