Jaký pool spouští w3wp.exe proces

Pokud potřebuji zjistit, který w3wp.exe proces byl spuštěn, kterým aplikačním poolem na IIS7, lze to zjistit z příkazové řádky.

%windir%/system32/inetsrv/appcmd list wp
 
C:\Windows\system32/inetsrv/appcmd list wp

Výsledke se vypíše např. takto

WP “5716” (applicationPool:DefaultAppPool)
WP “968” (applicationPool:MyOtherAppPool)
WP “5836” (applicationPool:TheThirdAppPool)

Více informací např. zde.

JavaScript - IV.

Automatický reload stránky

HTML Control

<asp:dropdownlist id="DropDownList1" runat="server" onchange="SetClientRefresh(this);"> 
     <asp:listitem value="1000">1 second</asp:listitem> 
     <asp:listitem value="2000">2 seconds</asp:listitem> 
     <asp:listitem value="3000">3 seconds</asp:listitem> 
</asp:dropdownlist>  

JavaScript

<script language='javascript'> 
var cTimeOut = null; 
function SetClientRefresh(sel) 
{ 
  var newRefresh = sel.options[sel.selectedIndex].value; 
  if (cTimeOut != null) 
  { 
    window.clearTimeout(cTimeOut); 
  } 
  cTimeOut = window.setTimeout("ReLoadPage()", newRefresh); 
} 
  
function ReLoadPage() 
{ 
  window.location.reload(); 
} 
</script> 

VS 2012 - Extension Manager Error 417

Visual Studion 2012 - Extension Manager hlásí nedostupnou službu, chyba č. 417.

Je potřeba otevřít devenv.exe.config soubor z následující cesty:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

A upravit konfiguraci.

<configuration>
 <system.net>
    <settings>
     <servicepointmanager expect100continue="false">
    </servicepointmanager></settings>
 </system.net>
</configuration>

Více informací:
Extension Manager attempts to use 100 (Continue) header by default

Životní cyklus WebParts

Web Part - page load

  1. OnInit
  2. OnLoad
  3. Connection Consuming
  4. CreateChildControls
  5. OnPreRender
  6. Render (RenderContents, etc)

Web Part Life - on button click

  1. OnInit
  2. CreateChildControls
  3. OnLoad
  4. Click Event Handling
  5. Connection Consuming
  6. OnPreRender
  7. RenderContents

Programové vytvoření dokumentové knihovny

using (SPWeb site = SPContext.Current.Web)
{  
  site.AllowUnsafeUpdates = true;   
  Guid libraryId = site.Lists["Documents"].ID;  
  SPDocumentLibrary library = (SPDocumentLibrary)site.Lists[libraryId];  

  string documentName = "textfile.txt";  
  string libraryRelativePath = library.RootFolder.ServerRelativeUrl;  
  string libraryPath = SPContext.Current.Site.MakeFullUrl(libraryRelativePath);  
  string documentPath = libraryPath + "/" + documentName;   
  using (Stream documentStream = new MemoryStream())  
  {    
    StreamWriter writer = new StreamWriter(documentStream);    
    writer.Write("attempt to create a file");    
    writer.Flush();     
    site.Files.Add(documentPath, documentStream, true);  
  }
}

JavaScript III.

Odesílání tlačítkem ENTER

Způsob odeslání formuláře tlačítkem "Enter" na klávesnici.Vše se musí udělat z JavaScriptu na straně klienta.

Button btn = new Button();
btn.Text = "Send";
 
TextBox txt = new TextBox();
txt.Attributes.Add("onkeydown", "if(event.keyCode==13) {document.getElementById('" + btn.UniqueID + "').click(); return false;}");

Detekce podpory JavaScriptu

Detekce z kódu, jestli prohlížeč podporuej JavaScript

if (Page.Request.Browser.JavaScript)
{
  ...
}
else
{
  ...
}

Seznam typů fieldů (SPFieldType)

NázevHodnotaPopisClass
AllDayEvent 29 Kalendář událostí. SPFieldAllDayEvent
Attachments 19 Přílohy. SPFieldAttachments
Boolean 8 Určuje boolean hodnoty. V databázi hodnoty 1 nebo 0. SPFieldBoolean
Calculated 17 Určuje vypočtené hodnoty. SPFieldCalculated
Choice 6 Určuje výběr ze seznamu hodnot. SPFieldChoice
Computed 12 Určuje abstraktní pole typu, který závisí na jiných polích za jeho obsah a definice. SPFieldComputed
ContentTypeId 25 Určuje typ obsahu ID.  
Counter 5 Určuje celé číslo používané v interních ID oblastech.  
CrossProjectLink 22 Určuje vazbu mezi projekty v Meetings Workspace stránce.  
Currency 10 Určuje formátování měny založené na konkrétní lokalizaci. SPFieldCurrency
DateTime 4 Určuje datum a čas hodnot. V databázi hodnota DateTime. SPFieldDateTime
Error 24 Určuje chybu.  
File 18 Určuje soubor. SPFieldFile
GridChoice 16 Určuje výběr oblasti pro datový list. SPFieldRatingScale
Guid 14 Určuje GUID V databázi hodnota Guid.  
Integer 1 Určuje kladné nebo záporné celé číslo hodnoty V databázi hodnota Integer.  
Invalid 0 Nepoužívá se.  
Lookup 7 Určuje odkazy na hodnoty v jiných seznamech. SPFieldLookup
MaxItems 31 Určuje maximální počet položek.  
ModStat 23 Určuje stav obsahu schválení. SPFieldModStat
MultiChoice 15 Určuje více hodnot za položku seznamu. SPFieldMultiChoice
Note 3 Určuje oblasti, které mohou obsahovat více řádků textu. SPFieldMultiLineText
Number 9 Určuje plovoucí bod čísel. SPFieldNumber
PageSeparator 26 Vkládá oddělovače do konce stránky v seznamu průzkumů. SPFieldPageSeparator
Recurrence 21 Určuje oblast, která je použita v kalendáři na opakované události a abstraktní pole typu. SPFieldRecurrence
Text 2 Určuje pouze jeden řádek textu. SPFieldText
ThreadIndex 27 Určuje identifikátor, který udává relativní pozici na zprávu v konverzaci threadu.  
Threading 13 Určuje oblasti, která se používá při vytváření a displej na thread webových diskusí.  
URL 11 Určuje hypertextové odkazy. SPFieldUrl
User 20 Určuje uživatelů na webu služby SharePoint. SPFieldUser
WorkflowEventType 30 Určuje typ workflow akce.  
WorkflowStatus 28 Určuje workflow stav. SPFieldWorkflowStatus

Systémový adresář

Pokud potřebuji najít v aplikaci systémový adresář, lze použít následující kód.

System.Environment.GetFolderPath(Environment.SpecialFolder.System);

Čtení souboru z disku

try
{
  Encoding encode = Encoding.GetEncoding("utf-8");
  using (FileStream  fs = new FileStream(soubor, FileMode.Open, FileAccess.Read, FileShare.Read))
  {
    using (StreamReader sw = new StreamReader(fs, encode))
    {
      string line;
      while ((line = sw.ReadLine()) != null)
      {
        // process line
      }
    }
  }
}
catch
{
  // process error
}

JavaScript II.

Zakázat pravé tlačítko myši

page.aspx

<body oncontextmenu="return false;" >
    ... 
</body> 

Otevřít nové okno tlačítkem

page.cs

Button1.Attributes.Add("onclick", "window.open('page2.aspx', '', 'fullscreen=yes')"); 

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn