.net - IIS Express 在编译/运行时指定配置文件和 Visual Studio 集成

标签 .net visual-studio visual-studio-2012 visual-studio-debugging iis-express

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

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

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

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

最佳答案

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

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

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

关于.net - IIS Express 在编译/运行时指定配置文件和 Visual Studio 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253603/

相关文章:

c# - 对列类型感到困惑

c# - TFS API TeamProjectCollection GetService<IBuildServer>() 返回空对象

c# - Microsoft Fakes 生成 UnitTestIsolationException

tfs - 我可以修改 TFS 2012 中的默认 checkin 操作吗?

.net - 如何分析WPF 4.5 UI性能?

c# - 线程安全的单元测试?

.net - Connection_Abandoned_By_ReqQueue 问题

c++ - 将类型转换包装在 static_cast 中会造成伤害吗?

c# - 为什么 VS 2017 生成没有未检查 block 的 GetHashCode

c# - 控制键的 ListView KeyUp 错误