2011-06-17 10 views
14

私は複数のウェブサイトを持つソリューションを持っており、開発のためにCassiniを使用しています。 IIS Expressが出てきたとき、私はウェブサイトの1つを使ってそれを使いました。すべてが正常に動作していました。私はちょうど別のWebサイトをIIS Expressを使用するように移動し、直ちにデバッグに関する問題に直面しました。IIS Expressはプロセスにラベルを付けることはありません。そのため、2つが実行されているので、ダイアログ。IIS Expressプロセスのラベル付け(タイトルの設定)方法は?

IIS Expressにプロセスタイトルを設定させる方法はありますか?誰でも、複数のIIS Expressインスタンスをデバッガを接続する目的で区別するためのヒントはありますか?これを行うための

更新 ラウンドについての方法は、IIS Expressのトレイアイコンの「表示すべてのアプリケーション」コンテキストメニューを実行すると、デバッガをアタッチするとき、リストからPIDを参照することです。何よりもいいですが、より良い方法があればいいと思います。 https://connect.microsoft.com/VisualStudio/feedback/details/729475/impossible-to-differentiate-iis-express-instances-when-attaching-debugger

+0

ショーすべてのアプリケーションは私のために十分です - チップのおかげで – Jerph

+1

Connectは「設計通り」に閉じます。 –

答えて

4

代替があなたのページ内からデバッガを起動するには、このコードを追加することができます:2

アップデートは、私は、接続の問題を追加しました。その簡単で簡単な方法です。隠れたローカルページを使用してデバッガを起動し、デバッガを起動することができます。

System.Diagnostics.Debugger.Launch(); 
2

バッチファイルからIISExpressインスタンスを実行します。 cmdファイルの名前は、プロセスにAttach to Processに表示されます。

例:MySite.cmdでこれを持って

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /siteid:1

をファイルにタイトルcolumに表示さだろう言及を忘れてはいけない

MySite

+0

サイトIDを取得する簡単な方法はありますか? –

+0

私が知る限り、applicationhost.configファイルに入ってチェックするだけです。あなたのユーザーフォルダ%\ Documents \ IISExpress \ configにあります。 site-id – Boycs

0

としてプロセスにアタッチシステム管理...

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 
); 
+0

の代わりに/ site:[site-name]引数を付けてiisexpress.exeを実行することもできます。これはもちろん準備ができていませんあなたの質問に対する答えがありますが、そのような答えを出すために使用することができます。 –

関連する問題