8

我有一个 Visual Studio 2012 MVC Web 项目,我在开发环境中使用 IIS Express 作为 Web 服务器。默认情况下,IIS Express 将其所有配置选项存储在 Documents\IISExpress\config\applicationhost.config 中。我想将我的应用程序的站点配置隔离到一个独立的 IIS Express 配置文件中,并将其与所有其他项目资产一起存储在源代码管理中。这很容易做到,但是当我在 Visual Studio 中开始调试时,我正在努力让 Visual Studio 告诉 IISExpress 使用这个配置文件。我可以手动启动 IISExpress 并通过 /config: 参数将配置文件传递给它,效果很好,但是当 Visual Studio 启动 IIS Express 时,我看不到任何将命令行参数传递给 IIS Express 的方法。

我还尝试将 Web 项目的“启动操作”设置为“启动外部程序”,并使用我指定的命令行参数将该程序设置为 IIS Express,并将“服务器”部分设置为“使用自定义 Web 服务器”,但是这个总是导致一条消息“无法在 Web 服务器上开始调试”。似乎以这种方式配置时,Visual Studio 在实际执行“启动外部程序”中指定的命令之前尝试附加到 Web 服务器主机进程

如果我尝试将 IISExpress 作为“构建后事件”运行,它实际上会运行,但这会阻止 Visual Studio 实际上继续在调试中执行我的代码(我猜它正在等待 IIS Express 退出——这会破坏整个目的)。

我错过了什么?如何将 IIS Express 与 Visual Studio 项目中的自定义配置文件集成?

4

1 回答 1

0

您似乎已经尝试了所有替代方案。您是否考虑过添加构建后事件?在您的项目属性的“构建事件”选项卡中,添加一个事件以覆盖applicationhost.configIISExpress 使用的默认文件。例如:

copy /Y $(ProjectPath)\applicationhost.config %25homepath%25\Documents\IISExpress\config\applicationhost.config

注意:%25 是 % 的转义序列。

于 2015-06-15T21:55:21.213 回答