Category Archives: Development Tools

Fiddler: Zachytávání lokálního ASP.NET Web Development Serveru (aktualizováno)

Fiddler je výborný nástroj pro zachytávání HTTP provozu – zobrazí Vám přesnou podobu HTTP requestu a responsu, kterou Váš počítač dělá vůči webovým serverům.

Ve skutečnosti Fiddler funguje jako proxy-server. Při spuštění se nastaví v Internet Options jako proxy a veškeré běžné požadavky tak jdou přes něj. Problém je v tom, že ne zas tak úplně veškeré, Innternet Explorer i .NET Framework natvrdo směřují veškeré požadavky na „localhost“ a „127.0.0.1“ mimo proxy, přestože je proxy zapnutý i pro intranet.

První podmínkou pro zachytávání Fiddlerem je tedy používat pro browsing adresu v podobě http://mujpocitac:1234/MyPage.aspx, čímž jdou takové požadavky přes proxy a dostane je Fiddler.

Další problém je však v tom, že ASP.NET Web Development Server (Visual Studio, Web Developer Express, …) přijímá požadavky pouze na „localhost“ a ostatní zamítá.

Řešením je překlad adresy ve Fiddleru. Fiddleru můžeme přidat pravidlo, aby požadavky na „mujpocitac“ převáděl na podobu „localhost“. Do CustomRules.js (Rules ~ Customize rules…) přidáme na začátek události BeforeRequest:

static function OnBeforeRequest(oSession:Fiddler.Session)
{
    oSession.host = oSession.host.replace("mujpocitac", "localhost");
}

…a je to.

(Samozřejmě ten překlad by se dal udělat i odolnější, aby fungovaly i adresy http://mujpocitac/mujpocitac/mujpocitac.aspx a nebylo z nichhttp://localhost/localhost/localhost.aspx)

Update pro Windows Vista

Ve Windows Vista je mimo výše uvedeného potřeba ještě ve Fiddleru v Options vypnout volbu „Enable IPv6“.

Visual Studio Gallery – katalog doplňků pro VS

Microsoft připravil nový web, Visual Studio Gallery (http://visualstudiogallery.com), který má být katalogem všech možných doplňků pro Visual Studio, extenzí, add-inů, maker a podobných vylepšení. Zaregistrovat se můžete i se svými doplňky.

Znali jste například následující zajímavé bezplatné nástroje?

Makra pro ExpandAllRegions, CollapseAllRegions (#region)

Již delší dobu používám ve Visual Studiu dvě makra – ExpandAllRegions a CollapseAllRegions, ke kterým mám přidružené klávesové zkratky Ctrl+Alt+NumPlus a Ctrl+Alt+NumMinus. Makra jsou prostá, rozbalí všechny regiony v kódu, či zabalí všechny #regiony v kódu (což se od doby, kdy si VS2005+ pamatuje poslední sbalení/rozbalení u každého souboru, narozdíl od předchozích verzí, kde se vždy vše dalo otevírat sbalené, ukázalo jako neobyčejně potřebnná funkce).

Makra jsou prostá:

Sub ExpandAllRegions()
    DTE.ExecuteCommand("Edit.StopOutlining")
    DTE.ExecuteCommand("Edit.StartAutomaticOutlining")
End Sub

Sub CollapseAllRegions()
    ExpandAllRegions()
    Dim objSelection As TextSelection
    objSelection = DTE.ActiveDocument.Selection
    objSelection.StartOfDocument()
    While (objSelection.FindText("#region"))
        objSelection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn)
        DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
        objSelection.StartOfDocument()
    End While
    DTE.ActiveDocument.Selection.StartOfDocument()
End Sub

…a přiřazení klávesových zkratek je v Tools ~ Options ~ Environment ~ Keyboard ~ …a dále dohledat název makra dle procedury, takže např. Macros.MyMacros.Havit.CollapseAllRegions, atd.

VS2005: Debugging – Unable to attach to process. Neplatný popisovač vazby.

Opravdu drsná chyba se mi projevila ve VS2005 a nebylo boha, abych k tomu na netu něco našel.
Když jsem chtěl ladit, tak mi to vyhazovalo chyby

Unable to attach to process. Neplatný popisovač vazby.
Unable to attach to process. The binding handle is invalid.

Když jsem zkoušel „Attach to process…“, tak to házelo

Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor 
named '<hostname>'. Neplatný popisovač vazby.

Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor
named '<hostname>'. The binding handle is invalid.

…netušim, čím to přesně je, ale nějak to souvisí s Terminal Services, když je tato služba DISABLED. Pokud se povolí služba Terminal Services, vše funguje !!!

Jako další možný workaround údajně stačí vypnout přepínač „Enable the Visual Studio hosting process“ – Project Properties ~ Debug ~ … (osobně nemám ověřeno).