我有多个网站的解决方案,我一直在使用Cassini进行开发。当IIS Express出现时,我转换了其中一个网站使用它,一切运行正常。我刚刚移动另一个网站使用IIS Express并立即遇到调试问题:IIS Express没有标记其进程,所以现在我有两个正在运行,我不能在“附加到进程”中区分它们对话框。
有没有办法让IIS Express设置流程标题?为了附加调试器,任何人都有任何提示将多个IIS Express实例分开?
更新 执行此操作的四舍五入方法是执行IIS Express托盘图标的“显示所有应用程序”上下文菜单,并在附加调试器时从列表中引用PID。总比没有好,但如果有更好的方法会很好。
答案 0 :(得分:4)
或者,您可以添加此代码以从页面内部启动调试器。它既快速又简单,您只需使用隐藏的本地页面来调用它并启动调试器。
System.Diagnostics.Debugger.Launch();
答案 1 :(得分:2)
我从批处理文件中运行IISExpress实例。然后,cmd文件的名称将显示为“附加到进程”中的进程名称。
例如:在MySite.cmd文件中有这个
"C:\Program Files (x86)\IIS Express\iisexpress.exe" /siteid:1
将显示在附加到流程的标题列中
MySite
答案 2 :(得分:0)
不要忘记对System.Management的引用......
public static Regex siteNamePattern = new Regex("/site:\"(?<sitename>[^\"]+)\"", RegexOptions.Compiled);
...
var iisExpressSiteNames = new ManagementObjectSearcher(
"select CommandLine, ProcessId from Win32_Process where Name='iisexpress.exe'")
.Get().Cast<ManagementBaseObject>().ToDictionary(
o => int.Parse(o["ProcessId"].ToString()),
o => siteNamePattern.Match(o["CommandLine"].ToString()).Groups["sitename"].Value
);
答案 3 :(得分:0)
我同意需要为“附加到流程”对话框标记流程。但是,针对您的具体情况,有一种解决方法。
解决方法:
如果同一解决方案中有两个项目,则可以选择多个启动项目:
https://docs.microsoft.com/en-us/visualstudio/ide/how-to-set-multiple-startup-projects?view=vs-2015