C#
Azure
IIS
.NETFramework
Diagnostics

C#でIISをクラッシュさせる

More than 1 year has passed since last update.

今回は意図的にw3wp.exeをクラッシュさせるプログラムを考えました。

AzureのPaasのCloudServiceでクラッシュダンプの転送をWindows Azure Diagnosticsを使用して行います。
TableStorage、BlobStorageに転送されてくれば成功です。

はじめは少し苦戦して、OutofMemoryの例外を出せばクラッシュすると思いましたが、正常な例外が発生しただけでした。

MVCで作りました。

sample1.cs
public ActionResult Crash()
{
    CrashMethod("HogeHoge---");
    return View();
}
private void CrashMethod(string s)
{
    CrashMethod(s);
}

または、

sample2.cs
async Task<string> GetAsync()
{
    var str = await new HttpClient().GetStringAsync("http://hogehoge.com/");
    return str;
}
public ActionResult Index()
{
    var s = GetAsync().Result;
    return View();
}

結果は、
image.png

image.png

うまくクラッシュダンプを転送させることができました。