<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hagenberg Software Blog</title>
	<atom:link href="http://blog.hagenberg-software.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hagenberg-software.at</link>
	<description>Hagenberg Software blogs about software, Microsoft and SharePoint</description>
	<lastBuildDate>Thu, 09 Feb 2012 17:01:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Change BrowserFileHandling for PDF documents not necessary!</title>
		<link>http://blog.hagenberg-software.at/2012/02/change-browserfilehandling-for-pdf-documents-not-necessary/</link>
		<comments>http://blog.hagenberg-software.at/2012/02/change-browserfilehandling-for-pdf-documents-not-necessary/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 17:01:30 +0000</pubDate>
		<dc:creator>Wolfgang Steinbichl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=979</guid>
		<description><![CDATA[It's not necessary to change the BrowserFileHandling - you can just add the MIME type "application/pdf" to the webapplication MIME Type list.]]></description>
			<content:encoded><![CDATA[<p>By SharePoint 2010 default, PDF files are not opened directly in the browser. By default if a PDF document is selected the &#8220;Save As&#8221; dialog appears.</p>
<p>It&#8217;s not necessary to change the BrowserFileHandling &#8211; you can just add the MIME type &#8220;application/pdf&#8221; to the webapplication MIME Type list and then PDFs files are registered as safe for opening in the browser.</p>
<p>To add the MIME type run following PowerShell Skript:</p>
<p>$webapp = Get-SPWebApplication &lt;your webapp url&gt;<br />
$webapp.AllowedInlineDownloadedMimeTypes<br />
$webapp.AllowedInlineDownloadedMimeTypes.Add(“application/pdf”)<br />
$webapp.Update()</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2012/02/change-browserfilehandling-for-pdf-documents-not-necessary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql Reporting Services Parameter by URL</title>
		<link>http://blog.hagenberg-software.at/2011/11/sql-reporting-services-parameter-by-url/</link>
		<comments>http://blog.hagenberg-software.at/2011/11/sql-reporting-services-parameter-by-url/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 10:56:01 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Microsoft SharePoint]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=975</guid>
		<description><![CDATA[Wert an die URL anhängen z.b.: &#38;KundeId=2, im Sharpoint &#38;rp:UserFCodes=1]]></description>
			<content:encoded><![CDATA[<p>Reporting Services Berichte lassen sich Parameter leicht in der URL übergeben:</p>
<p><strong>1) Normalmodus (SqlServerReportViewer):</strong><br />
einfach &amp;PArametername=Wert an die URL anhängen z.b.: &amp;KundeId=2</p>
<p>https://x.y.z/ReportServer_CRM/Pages/ReportViewer.aspx?%2fKundeGesamt&amp;rs:Command=Render&amp;KundeId=2</p>
<p><strong>2) Sharepoint integrierter Modus (RSViewerPage.aspx):</strong><br />
Parameternamem mit Präfix rp anhängen: &amp;rpParametername=Wert anhängen z.b.: &amp;rp:UserFCodes=1</p>
<p>http://x.y.z/_layouts/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/Test%20Reporting/ZugriffsstatistikGesamt.rdl&amp;Source=http%3A%2F%2F192%2E168%2E10%2E65%2FTest%2520Reporting%2FForms%2FAllItems%2Easpx&amp;DefaultItemOpen=1&amp;rp:UserFCodes=1</p>
<div class="zemanta-pixie" style="margin-top: 10px;height: 15px"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/zemified_e.png?x-id=fa0521d1-6d4f-44cb-b13f-fb2a68e154a6" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/11/sql-reporting-services-parameter-by-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sql agent running ? mit tsql</title>
		<link>http://blog.hagenberg-software.at/2011/08/sql-agent-running-mit-tsql/</link>
		<comments>http://blog.hagenberg-software.at/2011/08/sql-agent-running-mit-tsql/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 09:52:29 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=973</guid>
		<description><![CDATA[if 0&#60;(select count(*) from sys.sysprocesses where program_name like &#8216;SQLAgent%&#8217;) begin print &#8216;sql agent is running&#8217; end else begin print &#8216;sql agent is not running&#8217; end]]></description>
			<content:encoded><![CDATA[<p>if 0&lt;(select count(*) from sys.sysprocesses where program_name like &#8216;SQLAgent%&#8217;)<br />
begin<br />
print &#8216;sql agent is running&#8217;<br />
end<br />
else<br />
begin<br />
print &#8216;sql agent is not running&#8217;<br />
end</p>
<div class="zemanta-pixie" style="margin-top: 10px;height: 15px"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/zemified_e.png?x-id=8f6884a1-6ab9-4de3-b4f9-e65c3a07b869" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/08/sql-agent-running-mit-tsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>typed Dataset: mit Null Werte umgehen</title>
		<link>http://blog.hagenberg-software.at/2011/07/typed-dataset-mit-null-werte-umgehen/</link>
		<comments>http://blog.hagenberg-software.at/2011/07/typed-dataset-mit-null-werte-umgehen/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 15:02:35 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[DataSet]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=970</guid>
		<description><![CDATA[verwende SetXXXNull()  IsXXXNull() Methode der typed Datarow Instanzen]]></description>
			<content:encoded><![CDATA[<p>Um Null Werte abzufragen verwendet man die IsXXXNull() Methode der typed Datarow Instanzen, um Null Werte zu schreiben die SetXXXNull() Methode, wobei XXX der Feldname ist.</p>
<p>z.b.:</p>
<p>DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();<br />
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();<br />
drTextNm.ChildId = dr.Id;<br />
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];<br />
drTextNm.Created = DateTime.UtcNow;<br />
drTextNm.CreatedBy = Data.WinUserName;<br />
drTextNm.SetValidUntilNull();<br />
drTextNm.IsValidUntilNull();</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/07/typed-dataset-mit-null-werte-umgehen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>asp.net 4.0 deployment on IIS 7.0</title>
		<link>http://blog.hagenberg-software.at/2011/07/asp-net-4-0-deployment-on-iis-7-0/</link>
		<comments>http://blog.hagenberg-software.at/2011/07/asp-net-4-0-deployment-on-iis-7-0/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 11:35:50 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[ASP .NET]]></category>
		<category><![CDATA[Internet Information Services]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=968</guid>
		<description><![CDATA[aspnet_regiis –i um asp4.0 auf iis7 zum Laufen zu kriegen]]></description>
			<content:encoded><![CDATA[<p>Beim Versuch eine asp.net 4.0 app auf einen default configuriertem iis7 zu installieren erhält man beim Öffnen der website:</p>
<p>HTTP Error 404.17 &#8211; Not Found The requested content appears to be script and will not be served by the static file handler.</p>
<p>das  Problem ist, dass ASP.NET 4.0 Framework war zwar am Rechner installiert  =&gt; daher konnte man in den AppPools auch einstellen, dass der  AppPool unter 4.0 laufen soll, doch man muß es auch noch als (ehemals  isapi, nun allgemein) handler installieren, damit aspx seiten damit abgehandelt werden  können mittels:<br />
c:\windows\microsoft.net\framework\v4.0….\aspnet_regiis –i</p>
<p>unter  iis7.0 ist auch der server kern in asp.net daher sind keine  isapi.dlls wie unter iis60 und 5.0 nötig, um bestimmte dateiarten wie  aspx zu handeln, sondern das kann gleich im kern gehandelt werden.</p>
<div class="zemanta-pixie" style="margin-top: 10px;height: 15px"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/zemified_e.png?x-id=2bc09fd3-2ae7-40a3-9c40-5fb7cca46f02" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/07/asp-net-4-0-deployment-on-iis-7-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transactionale Replikation:</title>
		<link>http://blog.hagenberg-software.at/2011/05/transactionale-replikation/</link>
		<comments>http://blog.hagenberg-software.at/2011/05/transactionale-replikation/#comments</comments>
		<pubDate>Thu, 12 May 2011 12:22:10 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=927</guid>
		<description><![CDATA[Zunächst wird mit einem SQLAgentJob ein Snapshot angelegt, und zwar macht das der Raplikationsagent, also das WIndows Konto das beim Einrichten des Publishers angegeben wurde. wichtig: dieser Agent braucht schreibrechte auf der Freigabe, die zum Speichern des Snapshots verwendet wird &#8211; dort wird ein unc Directory angelegt und darin wieder eines mit dem Publikationsnamen, darin [...]]]></description>
			<content:encoded><![CDATA[<p>Zunächst wird mit einem SQLAgentJob ein Snapshot angelegt, und zwar macht das der Raplikationsagent, also das WIndows Konto das beim Einrichten des Publishers angegeben wurde. wichtig: dieser Agent braucht schreibrechte auf der Freigabe, die zum Speichern des Snapshots verwendet wird &#8211; dort wird ein unc Directory angelegt und darin wieder eines mit dem Publikationsnamen, darin werden die Files gepeichert. Insgesamt werden 3 SqlAgent Jobs verwendet: einen zum erstellen des SNapshots, einen logreader (liest das Transactionlog der Publikations Datenbank) und einen für die Subscription &#8211; dieser spielt zunächst den Snapshot in die Target Db ein und dann die Änderungen, die der LogReader des Publishers liefert.</p>
<p>Der Replikationsmonitor zeigt den Status aller Publikationen auf einen Blick und auch gleich die History der betroffenen<br />
<img src="/Users/hewmic/AppData/Local/Temp/moz-screenshot-2.png" alt="" /><img src="/Users/hewmic/AppData/Local/Temp/moz-screenshot-3.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/05/transactionale-replikation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 problems with SSL Certificate</title>
		<link>http://blog.hagenberg-software.at/2011/04/sharepoint-2010-problems-with-ssl-certificate/</link>
		<comments>http://blog.hagenberg-software.at/2011/04/sharepoint-2010-problems-with-ssl-certificate/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 14:19:51 +0000</pubDate>
		<dc:creator>Wolfgang Steinbichl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=955</guid>
		<description><![CDATA[When installing or renewing the SSL certificate for HTTPs secured connections to a SharePoint 2010 portal there might be problems.]]></description>
			<content:encoded><![CDATA[<p>In our case some of the webparts displayed on SharePoint 2010 Portal Site having errors. These error occur only if we access the portal site throw a secured HTTPS url.<br />
If we access it with the normal http url, the problems doesn&#8217;t occur.</p>
<p>When I had a look into the Eventlog of the SharePoint 2010 server i found some hints on the problem:</p>
<p><em><strong>An operation failed because the following certificate has validation errors:<br />
Subject Name: CN=*.hagenberg-software.at, OU=Domain Control Validated &#8211; &#8230;,<br />
OU=&#8230;, OU=&#8230;, O=*.hagenberg-software.at, C=AT,<br />
SERIALNUMBER=&#8230;<br />
Issuer Name: CN=&#8230;<br />
CA,<br />
O=&#8221;GeoTrust, Inc.&#8221;, C=US\nThumbprint: &#8230;<br />
Errors: The root of the certificate chain is not a trusted root authority..</strong></em></p>
<p>The solution to fix this issue is to add the root certificates of the SSL certificate to the SharePoint 2010:</p>
<ol>
<li>Open the SharePoint 2010 Central Administration</li>
<li>Open the &#8216;Manage Trust&#8217; section under the &#8216;Security&#8217; Tab<br />
<a href="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/TrustsSP2010.png"><img class="aligncenter size-medium wp-image-959" src="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/TrustsSP2010-300x65.png" alt="SharePoint 2010 - Manage Trusts" width="300" height="65" /></a></li>
<li>Add the SSL Certificate and all the Root Certificates of the certificate chain.<br />
The best way to import the certificates is to store them in base-64 files with the file extension *.cer</li>
<li>Now check if the SharePoint 2010 Portal is working via the Https url</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/04/sharepoint-2010-problems-with-ssl-certificate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Navigation is missing in Search Center SharePoint 2010</title>
		<link>http://blog.hagenberg-software.at/2011/04/navigation-is-missing-in-search-center-sharepoint-2010/</link>
		<comments>http://blog.hagenberg-software.at/2011/04/navigation-is-missing-in-search-center-sharepoint-2010/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 21:33:26 +0000</pubDate>
		<dc:creator>Wolfgang Steinbichl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=936</guid>
		<description><![CDATA[Everyone knows that the default search center of SharePoint 2010 has no navigation by default. That's are very frustrating problem be go back. In this article I describe how to modify the minimal.master (Default Master of Search Center) to display the navigation.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s really annoying to use the SharePoint 2010 Search Center without the common Navigation panel.  </p>
<p>By default a search center look like this:  </p>
<p><a href="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/ohNavigation.png"><img class="aligncenter size-medium wp-image-940" src="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/ohNavigation-300x119.png" alt="" width="300" height="119" /></a>  </p>
<p>Search center uses the minimal.master by default. It&#8217;s quite easy to enhance the minimal.master to display the navigation panel. The following code section has to be inserted into the minimal.master at the described position.</p>
<address>    &lt;!&#8211; Existing content of minimal.master &#8211;&gt;<br />
    &lt;h3&gt;<br />
    &lt;asp:ContentPlaceHolder id=&#8221;PlaceHolderPageSubTitle&#8221; runat=&#8221;server&#8221; /&gt;<br />
   &lt;/h3&gt;<br />
  &lt;/div&gt;<br />
 &lt;/div&gt;<br />
    &lt;!&#8211; Existing content of minimal.master &#8211;&gt;<br />
 <br />
    &lt;!&#8211; Begin of Insert &#8211;&gt;<br />
    &lt;div id=&#8221;s4-topheader2&#8243;&gt;<br />
        &lt;a name=&#8221;startNavigation&#8221;&gt;&lt;/a&gt;<br />
        &lt;div&gt;<br />
            &lt;asp:ContentPlaceHolder ID=&#8221;PlaceHolderTopNavBar&#8221; runat=&#8221;server&#8221;&gt;<br />
                &lt;asp:ContentPlaceHolder ID=&#8221;PlaceHolderHorizontalNav&#8221; runat=&#8221;server&#8221;&gt;<br />
                    &lt;SharePoint:AspMenu ID=&#8221;TopNavigationMenuV4&#8243; Runat=&#8221;server&#8221; EnableViewState=&#8221;false&#8221;<br />
                        DataSourceID=&#8221;topSiteMap&#8221; AccessKey=&#8221;&lt;%$Resources:wss,navigation_accesskey%&gt;&#8221;<br />
                        UseSimpleRendering=&#8221;true&#8221; UseSeparateCss=&#8221;false&#8221; Orientation=&#8221;Horizontal&#8221; StaticDisplayLevels=&#8221;2&#8243;<br />
                        MaximumDynamicDisplayLevels=&#8221;1&#8243; SkipLinkText=&#8221;" CssClass=&#8221;s4-tn&#8221; /&gt;<br />
                    &lt;SharePoint:DelegateControl runat=&#8221;server&#8221; ControlId=&#8221;TopNavigationDataSource&#8221; Id=&#8221;topNavigationDelegate&#8221;&gt;<br />
                        &lt;template_controls&gt;<br />
   &lt;asp:SiteMapDataSource<br />
     ShowStartingNode=&#8221;False&#8221;<br />
     SiteMapProvider=&#8221;SPNavigationProvider&#8221;<br />
     id=&#8221;topSiteMap&#8221;<br />
     runat=&#8221;server&#8221;<br />
     StartingNodeUrl=&#8221;sid:1002&#8243;/&gt;<br />
  &lt;/template_controls&gt;<br />
                    &lt;/SharePoint:DelegateControl&gt;<br />
                &lt;/asp:ContentPlaceHolder&gt;<br />
            &lt;/asp:ContentPlaceHolder&gt;<br />
        &lt;/div&gt;<br />
    &lt;/div&gt;<br />
    &lt;!&#8211;End of Insert &#8211;&gt;<br />
  <br />
    &lt;!&#8211; Existing content of minimal.master &#8211;&gt;<br />
 &lt;div&gt;<br />
  &lt;asp:ContentPlaceHolder id=&#8221;PlaceHolderTitleBreadcrumb&#8221; runat=&#8221;server&#8221; /&gt;<br />
 &lt;/div&gt;<br />
 &lt;div id=&#8221;maincontent&#8221;&gt;<br />
  &lt;asp:ContentPlaceHolder id=&#8221;PlaceHolderMain&#8221; runat=&#8221;server&#8221; /&gt;<br />
 &lt;/div&gt;<br />
 &lt;!&#8211; Existing content of minimal.master &#8211;&gt;</address>
<p>After the modification of the minimal.master the navigation panel will be displayed in the search center:</p>
<p><a href="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/mitNavigation.png"><img class="aligncenter size-medium wp-image-949" src="http://blog.hagenberg-software.at/wp-content/uploads/2011/04/mitNavigation-300x129.png" alt="" width="300" height="129" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/04/navigation-is-missing-in-search-center-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rename SharePoint Server 2010</title>
		<link>http://blog.hagenberg-software.at/2011/04/rename-sharepoint-server-2010/</link>
		<comments>http://blog.hagenberg-software.at/2011/04/rename-sharepoint-server-2010/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 12:14:18 +0000</pubDate>
		<dc:creator>Wolfgang Steinbichl</dc:creator>
				<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=930</guid>
		<description><![CDATA[A running SharePoint 2010 server can't be renamed easily. Before renaming the computer or move the server to a different domain the SharePoint farm has to be prepared for renaming. Following steps have to be done to rename or to move a SharePoint server.]]></description>
			<content:encoded><![CDATA[<p>The following steps are necessary for renaming the computer or changing the domain:</p>
<p>Step 1: Update Alternative Access Mappings<br />
a. Open Central Administration -&gt; Operations -&gt; Alternate access mappings<br />
b. Modify each mapping item to reflect your newly chosen server name (&lt;newname&gt;)</p>
<p>Step 2: Use stsadm to migrate ConfigDatabase<br />
a. Open a command prompt window<br />
b. Go to the 14-Folder/BIN: C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN<br />
c. Execute: stsadm.exe –o renameserver –newservername &lt;newname&gt; -oldservername &lt;oldname&gt;</p>
<p>Step 3: Rename your Server<br />
a. Open System, “Computer Name” tab, Change button<br />
b. Input your new server name &lt;newname&gt; / domain name<br />
c. Reboot the server NOW</p>
<p>Step 4: Update Central Administration Webapp-pool<br />
a. Open a command prompt window<br />
b. Go to the 14-Folder/BIN: C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN<br />
c.  Execute: stsadm.exe –o updatefarmcredentials –userlogin &lt;FARMADMINUSERNAME&gt; -password &lt;FARMADMINPASSWORD&gt;<br />
This is necassary if the account has changed (lokal computer account is used or domain has changed)</p>
<p>Step 5: Update IIS Apppool Accounts<br />
a. Open Internet Information Services and check if all AppPools run with the user in the new Domain or new local computer name</p>
<p>Step 6: Update Central Administration Service accounts<br />
a. Open Central Administration<br />
b. Go to Operations\Service accounts<br />
c. Modify all WebApplication users to run within the new user name</p>
<p>Step 7: iisreset</p>
<p>Now the SharePoint server is renamed and the SharePoint 2010 should work again.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/04/rename-sharepoint-server-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zusammenfassung Delegates, anonyme Methoden usw.</title>
		<link>http://blog.hagenberg-software.at/2011/03/zusammenfassung-delegates-anonyme-methoden-usw/</link>
		<comments>http://blog.hagenberg-software.at/2011/03/zusammenfassung-delegates-anonyme-methoden-usw/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 08:06:02 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Delegate]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=925</guid>
		<description><![CDATA[Evolution der Delegates in C#: delegate void TestDelegate(string s); TestDelegate testDelA = new TestDelegate(M); //C#1.0 explicite Method M must me declared TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); }; //C#2.0 inline &#8220;anonymos method TestDelegate testDelC = (x) =&#62; { Console.WriteLine(x); }; // C# 3.0. lambda expr. Action &#60;string&#62; TestDelegate; //C#4.0 DelegateDefinition einfacher //C# 4.0 Actions [...]]]></description>
			<content:encoded><![CDATA[<p>Evolution der Delegates in C#:</p>
<p>delegate void TestDelegate(string s);<br />
TestDelegate testDelA = new TestDelegate(M); //C#1.0 explicite Method M must me declared<br />
TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); }; //C#2.0 inline &#8220;anonymos method<br />
TestDelegate testDelC = (x) =&gt; { Console.WriteLine(x); }; // C# 3.0. lambda expr.<br />
Action &lt;string&gt; TestDelegate; //C#4.0 DelegateDefinition einfacher //C# 4.0 Actions</p>
<p>In Windows Forms muss eine anonyme Methode noch zu einem MethodInvoker konvertiert werden:<br />
this.Invoke(new MethodInvoker(delegate() { pgbStatus.Minimum = 0; }));</p>
<p>In Wpf zu einer Action:<br />
Application.Current.Dispatcher.Invoke((Action)delegate<br />
{<br />
SetButtonsEnabled(true);<br />
}, null);</p>
<div class="zemanta-pixie" style="margin-top: 10px;height: 15px"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/zemified_e.png?x-id=784f3f39-6b4a-49fa-80f8-4f9c844008a6" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/03/zusammenfassung-delegates-anonyme-methoden-usw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aus dem Tagebuch eines Surface Entwicklers</title>
		<link>http://blog.hagenberg-software.at/2011/03/aus-dem-tagebuch-eines-surface-entwicklers/</link>
		<comments>http://blog.hagenberg-software.at/2011/03/aus-dem-tagebuch-eines-surface-entwicklers/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 07:31:10 +0000</pubDate>
		<dc:creator>Wolfgang Steinbichl</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=922</guid>
		<description><![CDATA[10.03.2011 So jetzt bin ich gerade mit dem ersten Designworkshop mit dem Kunden fertig. Es war zwar sehr anstrengend aber wenn ich an die Ideen und Entwürfe denke muss ich mich einfach freuen. Extrem hilfreich war die Tatsache, dass der neue Surface fast so groß ist wie ein Flichart mit ca. 106cm Diagonale. Man kann [...]]]></description>
			<content:encoded><![CDATA[<p>10.03.2011</p>
<p>So jetzt bin ich gerade mit dem ersten Designworkshop mit dem Kunden fertig. Es war zwar sehr anstrengend aber wenn ich an die Ideen und Entwürfe denke muss ich mich einfach freuen.</p>
<p>Extrem hilfreich war die Tatsache, dass der neue Surface fast so groß ist wie ein Flichart mit ca. 106cm <a class="zem_slink" title="Diagonale" rel="wikipedia" href="http://en.wikipedia.org/wiki/Diagonale">Diagonale</a>. Man kann den Chart auf den Tisch legen und hat während dem Meeting gleich einen Eindruck wie es aussehen könnte.</p>
<p>In dem Meeting ist auch ganz klar herausgekommen: Es geht um die <a class="zem_slink" title="User experience" rel="wikipedia" href="http://en.wikipedia.org/wiki/User_experience">User Experience</a>. Mit dem Surface können wir Barrieren abbauen und mit dem natürlichen Spieltrieb des Menschen eine Applikation kreieren deren Benutzung einfach Spaß macht.</p>
<p>Was kann man mehr verlangen?</p>
<p>09.03.2011</p>
<p>Eine Touch Applikation zu entwickeln ist anspruchsvoller als es zuerst scheint. Ich muss die Dinge viel mehr aus Sicht des Benutzers betrachten. Das ist doch eine andere Herangehensweise als ich es gewohnt bin. Zum Glück gibt es inzwischen viele Touch Gadgets von denen ich mich bei Handhabung und Design inspirieren lassen kann. Aber mit dem Surface ist einfach so viel mehr möglich als mit den &#8220;kleinen&#8221; Gadgets. Ich muss nur aufpassen, dass ich bei den Möglichkeiten nicht die Orientierung verliere.</p>
<p>07.03.2011</p>
<p>Die erste Euphorie für den Surface entwickeln zu können hat sich gelegt. Der Surface bietet noch viel mehr als die Möglichkeit ein intuitives <a class="zem_slink" title="User interface" rel="wikipedia" href="http://en.wikipedia.org/wiki/User_interface">User Interface</a> zu erschaffen. Die Technik die dahintersteckt lässt mir das Herz übergehen.</p>
<p>Bis zu 50 verschiedene Touch Interaktionen gleichzeitig sind möglich.</p>
<p>Zu Beginn klingt dies nach einer komplexen Plattform aber <a class="zem_slink" title="Microsoft" rel="geolocation" href="http://maps.google.com/maps?ll=47.6395972222,-122.12845&amp;spn=1.0,1.0&amp;q=47.6395972222,-122.12845 (Microsoft)&amp;t=h">Microsoft</a> hat es sehr gut hinbekommen die Entwicklung komfortabel und leicht verständlich zu gestalten.</p>
<p>Ich benötige jetzt keinen Simulator mehr auf meinem PC sondern kann mit <a class="zem_slink" title="Windows Presentation Foundation" rel="wikipedia" href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">WPF</a> entwickeln und falls es einmal wirkliches 3d sein sollen steht <a class="zem_slink" title="Microsoft XNA" rel="homepage" href="http://create.msdn.com/">XNA</a> bereit. Als Zielplattform steht mir <a class="zem_slink" title=".NET Framework" rel="homepage" href="http://msdn.microsoft.com/netframework">.NET</a> 4.0 zur Verfügung.</p>
<p>All dies bietet mir eine vertraute Umgebung und ich kann mich viel besser auf das Design konzentrieren anstatt eine neue Technik zu erlernen.</p>
<p>05.03.2011</p>
<p>Es geht los mit der Recherche für ein <a class="zem_slink" title="Projekt Records" rel="homepage" href="http://www.projekt.com/">Projekt</a> mit dem neuen <a class="zem_slink" title="Microsoft Surface" rel="homepage" href="http://www.microsoft.com/surface/">MS Surface</a>.</p>
<p>Ich bin echt schon neugierig denn der alte Tisch war schon sehr cool und das Video von der <a class="zem_slink" title="Consumer Electronics Show" rel="homepage" href="http://www.cesweb.org/">CES</a> verspricht einiges. Faszinierend ist vor allem wie sie diese ganze Technik in einen Flatscreen gebracht haben. Nicht nur technisch sondern auch vom Design her sehr gelungen.</p>
<p>Video: <a href="http://www.youtube.com/watch?v=0NesSYWODmM">http://www.youtube.com/watch?v=0NesSYWODmM</a></p>
<div class="zemanta-pixie" style="margin-top: 10px;height: 15px"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="float: right" src="http://img.zemanta.com/zemified_e.png?x-id=f492cd7a-dbad-430a-8c94-ffc7e56c4794" alt="Enhanced by Zemanta" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/03/aus-dem-tagebuch-eines-surface-entwicklers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>custom config section class</title>
		<link>http://blog.hagenberg-software.at/2011/03/custom-config-section-class/</link>
		<comments>http://blog.hagenberg-software.at/2011/03/custom-config-section-class/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 10:00:48 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=918</guid>
		<description><![CDATA[Eine eigen configsection Klasse muss von ConfigurationSection abgeleitet sein, braucht eine Property SectionName, anbei der Code zum lesen und Schreiben, bei Fehlersuche ist es ratsam im Visual Studio unter Debug/Exceptions bei CLR Exceptions das Häckchen bei Thrown anzuhacken, da Fehler sonst vom Configurationmanager unterdrückt werden. Aktiviert man aber dass die Ausführung bei thrown Exceptions unterbricht,bekommt [...]]]></description>
			<content:encoded><![CDATA[<p>Eine eigen configsection Klasse muss von ConfigurationSection abgeleitet sein, braucht eine Property SectionName, anbei der Code zum lesen und Schreiben, bei Fehlersuche ist es ratsam im Visual Studio unter Debug/Exceptions bei CLR Exceptions das Häckchen bei Thrown anzuhacken, da Fehler sonst vom Configurationmanager unterdrückt werden. Aktiviert man aber dass die Ausführung bei thrown Exceptions unterbricht,bekommt man die Orignal Fehlermeldung des Configurationmanagers.</p>
<p>private string _SectionName;<br />
public string Name<br />
{<br />
get<br />
{<br />
return this.SectionInformation.Name;<br />
}<br />
}<br />
public string SectionName<br />
{<br />
get<br />
{<br />
return _SectionName;<br />
}<br />
set<br />
{<br />
_SectionName = value;<br />
}<br />
}</p>
<p>public static List&lt;DataContextParams&gt; GetSectionsFromConfig()<br />
{<br />
Configuration c = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);<br />
ConfigurationSectionGroup csg = c.GetSectionGroup(&#8220;DataContextParams&#8221;);<br />
List&lt;DataContextParams&gt; ldcp = new List&lt;DataContextParams&gt;();<br />
foreach (DataContextParams dcp in csg.Sections)<br />
{<br />
ldcp.Add(dcp);<br />
}<br />
return ldcp;<br />
}</p>
<p>/// &lt;summary&gt;<br />
/// schreibt dieses Objekt in die Config<br />
/// &lt;/summary&gt;<br />
/// &lt;param name=&#8221;configfile&#8221;&gt;wenn null wird in die execonfig geschrieben&lt;/param&gt;<br />
public void SaveSectionToConfig(string configfile)<br />
{<br />
ExeConfigurationFileMap oConfigFile = new ExeConfigurationFileMap();<br />
Configuration oConfiguration;<br />
if (null == configfile)<br />
{<br />
oConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);<br />
}<br />
else<br />
{<br />
oConfigFile.ExeConfigFilename = configfile;<br />
oConfiguration = ConfigurationManager.OpenMappedExeConfiguration(oConfigFile, ConfigurationUserLevel.None);<br />
}</p>
<p>//Add it to the configuration&#8217;s sections<br />
oConfiguration.Sections.Add(SectionName, this);</p>
<p>//Save the given section in the configuration file<br />
this.SectionInformation.ForceSave = true;<br />
oConfiguration.Save(ConfigurationSaveMode.Full);</p>
<p>}</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/03/custom-config-section-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Default Values in Stored Procedures, Severity Levels</title>
		<link>http://blog.hagenberg-software.at/2011/01/default-values-in-stored-procedures-severity-levels/</link>
		<comments>http://blog.hagenberg-software.at/2011/01/default-values-in-stored-procedures-severity-levels/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 12:59:17 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=915</guid>
		<description><![CDATA[ALTER PROCEDURE testRaiseError @Severity int =18 AS BEGIN &#8211; SET NOCOUNT ON added to prevent extra result sets from &#8211; interfering with SELECT statements. SET NOCOUNT ON; Raiserror(&#8216;Test Raiserrror&#8217;,@Severity,10) END Fehler ab einer Severity von 10 brechen ein laufendes TSQL Script ab und gelten als Fehler]]></description>
			<content:encoded><![CDATA[<p>ALTER PROCEDURE testRaiseError<br />
@Severity int =18<br />
AS<br />
BEGIN<br />
&#8211; SET NOCOUNT ON added to prevent extra result sets from<br />
&#8211; interfering with SELECT statements.<br />
SET NOCOUNT ON;</p>
<p>Raiserror(&#8216;Test Raiserrror&#8217;,@Severity,10)<br />
END</p>
<p>Fehler ab einer Severity von 10 brechen ein laufendes TSQL Script ab und gelten als Fehler</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/01/default-values-in-stored-procedures-severity-levels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transaktion mit Fehlerbehandlung in TSQL</title>
		<link>http://blog.hagenberg-software.at/2011/01/transaktion-mit-fehlerbehandlung-in-tsql/</link>
		<comments>http://blog.hagenberg-software.at/2011/01/transaktion-mit-fehlerbehandlung-in-tsql/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 10:44:31 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=911</guid>
		<description><![CDATA[Beispiel Insert und Update in einer Transaktion, wenn eines fehlschlägt wird zurückgerollt und der Fehler weitergegeben BEGIN TRAN T1 BEGIN TRY &#8211;write all values to mcit.auditrail (@UserId) INSERT INTO [AuditTrail] ([ActionType],[ObjectType],[ObjectId],[OldValues],[NewValues],[UserId]) SELECT &#8216;Update&#8217;,'Products&#8217;,Id,CONVERT(Nvarchar(MAX),Price),CONVERT(Nvarchar(MAX),Price*@PriceFact),@UserId from product where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0 update mcit.product set Price=Price*@PriceFact where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0 END TRY BEGIN CATCH [...]]]></description>
			<content:encoded><![CDATA[<p>Beispiel Insert und Update in einer Transaktion, wenn eines fehlschlägt wird zurückgerollt und der Fehler weitergegeben</p>
<p>BEGIN TRAN T1<br />
BEGIN TRY<br />
&#8211;write all values to mcit.auditrail (@UserId)<br />
INSERT INTO [AuditTrail] ([ActionType],[ObjectType],[ObjectId],[OldValues],[NewValues],[UserId])<br />
SELECT &#8216;Update&#8217;,'Products&#8217;,Id,CONVERT(Nvarchar(MAX),Price),CONVERT(Nvarchar(MAX),Price*@PriceFact),@UserId<br />
from product where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0</p>
<p>update mcit.product set Price=Price*@PriceFact where [year]=@Year and SupplierGroupId=@SupplierGroupId and IsDeleted=0<br />
END TRY<br />
BEGIN CATCH<br />
print &#8216;Fehler in Transaktion aufgetreten &#8211; Rolle zurück&#8217;<br />
ROLLBACK TRAN T1</p>
<p>DECLARE @MSG NVARCHAR(MAX) SET @MSG=ERROR_MESSAGE()<br />
DECLARE @SEV INT SET @SEV=ERROR_SEVERITY()<br />
DECLARE @STA INT SET @STA=ERROR_STATE()<br />
RAISERROR (@MSG,@SEV,@STA)<br />
RETURN<br />
END CATCH<br />
COMMIT TRAN T1</p>
<p>END</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2011/01/transaktion-mit-fehlerbehandlung-in-tsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>log4net &#8211; einfaches Besipiel fuer rolling file appender, Email und Datenbank appender</title>
		<link>http://blog.hagenberg-software.at/2010/12/log4net-einfaches-besipiel-fuer-rolling-file-appender-email-und-datenbank-appender/</link>
		<comments>http://blog.hagenberg-software.at/2010/12/log4net-einfaches-besipiel-fuer-rolling-file-appender-email-und-datenbank-appender/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 14:15:04 +0000</pubDate>
		<dc:creator>Michael Hewarth</dc:creator>
				<category><![CDATA[Software Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.hagenberg-software.at/?p=909</guid>
		<description><![CDATA[appender schreiben die messages in files, mails, datenbanken &#8230;; die messages werden mit den loggern erzeugt, wobei es eine logger hirachie gibt an deren Spitze der root logger steht, der auch alle messages die von anderen loggern erzeugt wurden loggt (also an seine appender weitergibt). So ist es möglich mit einem logger z.b. alle log [...]]]></description>
			<content:encoded><![CDATA[<p>appender schreiben die messages in files, mails, datenbanken &#8230;; die messages werden mit den loggern erzeugt, wobei es eine logger hirachie gibt an deren Spitze der root logger steht, der auch alle messages die von anderen loggern erzeugt wurden loggt (also an seine appender weitergibt). So ist es möglich mit einem logger z.b. alle log messages eines namespaces (+subnamespaces) zu loggen, also einfaches Beispiel:</p>
<p><strong>im Code:</strong><br />
public class Myclass<br />
{<br />
protected static ILog log = log4net.LogManager.GetLogger(&#8220;System.Windows.Forms&#8221;); //erzeuge logger</p>
<p>public static void TestLog()<br />
{<br />
log.Info(&#8220;Test&#8221;+DateTime.Now); // Test log<br />
}<br />
}<br />
<strong>in App.config:</strong></p>
<p>&lt;logger name=&#8221;System.Windows.Forms&#8221;&gt;<br />
&lt;level value=&#8221;INFO&#8221;/&gt;<br />
&lt;appender-ref ref=&#8221;fileapp&#8221;/&gt;<br />
&lt;/logger&gt;</p>
<p>&lt;appender name=&#8221;fileapp&#8221; type=&#8221;log4net.Appender.FileAppender&#8221;&gt;<br />
&lt;file value=&#8221;log.txt&#8221; /&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%date;%-5level;%message;%exception%newline&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/appender&gt;</p>
<p><strong>nach Level filtern im Appender (loggt keine Info und Debug)</strong><br />
&lt;filter type=&#8221;log4net.Filter.LevelRangeFilter&#8221;&gt;<br />
&lt;levelMin value=&#8221;WARN&#8221;/&gt;<br />
&lt;levelMax value=&#8221;FATAL&#8221;/&gt;<br />
&lt;/filter&gt;</p>
<p><strong>Levels</strong>:<br />
•ALL<br />
•DEBUG<br />
•INFO<br />
•WARN<br />
•ERROR<br />
•FATAL<br />
•OFF</p>
<p><strong>Beispiel für config die mittels root logger alles loggt in 3 Appender: file, datenbank und email:</strong></p>
<p>&lt;root&gt;<br />
&lt;level value=&#8221;ALL&#8221;/&gt;<br />
&lt;appender-ref ref=&#8221;RFArootAll&#8221;/&gt;<br />
&lt;appender-ref ref=&#8221;DBAroot&#8221;/&gt;<br />
&lt;appender-ref ref=&#8221;SMTPAHSG&#8221;/&gt;<br />
&lt;/root&gt;</p>
<p>&lt;appender name=&#8221;RFArootAll&#8221; type=&#8221;log4net.Appender.RollingFileAppender&#8221;&gt;<br />
&lt;file value=&#8221;log_RFArootAll.txt&#8221;/&gt;<br />
&lt;appendToFile value=&#8221;true&#8221;/&gt;<br />
&lt;rollingStyle value=&#8221;Size&#8221;/&gt;<br />
&lt;maxSizeRollBackups value=&#8221;10&#8243;/&gt;<br />
&lt;maximumFileSize value=&#8221;50MB&#8221;/&gt;<br />
&lt;staticLogFileName value=&#8221;true&#8221;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%date;%logger;%message;%exception%newline&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/appender&gt;</p>
<p>&lt;appender name=&#8221;DBAroot&#8221; type=&#8221;log4net.Appender.ADONetAppender&#8221;&gt;<br />
&lt;bufferSize value=&#8221;1&#8243;/&gt;<br />
&lt;connectionType value=&#8221;System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;/&gt;<br />
&lt;connectionString value=&#8221;Data Source=localhost;Initial Catalog=myDb;Integrated Security=True&#8221;/&gt;<br />
&lt;commandText value=&#8221;INSERT INTO Log ([Date],[Level],[Logger],[User],[Message],[Exception]) VALUES (@log_date, @log_level, @logger, @user, @message, @exception)&#8221;/&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@log_date&#8221;/&gt;<br />
&lt;dbType value=&#8221;DateTime&#8221;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.RawTimeStampLayout&#8221;/&gt;<br />
&lt;/parameter&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@log_level&#8221;/&gt;<br />
&lt;dbType value=&#8221;String&#8221;/&gt;<br />
&lt;size value=&#8221;50&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%p&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/parameter&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@logger&#8221;/&gt;<br />
&lt;dbType value=&#8221;String&#8221;/&gt;<br />
&lt;size value=&#8221;255&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%c&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/parameter&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@user&#8221;/&gt;<br />
&lt;dbType value=&#8221;String&#8221;/&gt;<br />
&lt;size value=&#8221;50&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%X{user}&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/parameter&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@message&#8221;/&gt;<br />
&lt;dbType value=&#8221;String&#8221;/&gt;<br />
&lt;size value=&#8221;4000&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%m&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/parameter&gt;<br />
&lt;parameter&gt;<br />
&lt;parameterName value=&#8221;@exception&#8221;/&gt;<br />
&lt;dbType value=&#8221;String&#8221;/&gt;<br />
&lt;size value=&#8221;2000&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.ExceptionLayout&#8221;/&gt;<br />
&lt;/parameter&gt;<br />
&lt;/appender&gt;</p>
<p>&lt;appender name=&#8221;SMTPAHSG&#8221; type=&#8221;log4net.Appender.SMTPAppender&#8221;&gt;<br />
&lt;filter type=&#8221;log4net.Filter.LevelRangeFilter&#8221;&gt;<br />
&lt;levelMin value=&#8221;WARN&#8221;/&gt;<br />
&lt;levelMax value=&#8221;FATAL&#8221;/&gt;<br />
&lt;/filter&gt;<br />
&lt;param name=&#8221;To&#8221; value=&#8221;***.net&#8221;/&gt;<br />
&lt;param name=&#8221;From&#8221; value=&#8221;***.net&#8221;/&gt;<br />
&lt;param name=&#8221;Subject&#8221; value=&#8221;logging message&#8221;/&gt;<br />
&lt;param name=&#8221;SMTPHost&#8221; value=&#8221;***.net&#8221;/&gt;<br />
&lt;authentication value=&#8221;1&#8243;/&gt;<br />
&lt;username value=&#8221;***&#8221;/&gt;<br />
&lt;password value=&#8221;***&#8221;/&gt;<br />
&lt;param name=&#8221;LocationInfo&#8221; value=&#8221;false&#8221;/&gt;<br />
&lt;param name=&#8221;BufferSize&#8221; value=&#8221;1&#8243;/&gt;<br />
&lt;layout type=&#8221;log4net.Layout.PatternLayout&#8221;&gt;<br />
&lt;conversionPattern value=&#8221;%date;%-5level;%message;%exception%newline&#8221;/&gt;<br />
&lt;/layout&gt;<br />
&lt;/appender&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hagenberg-software.at/2010/12/log4net-einfaches-besipiel-fuer-rolling-file-appender-email-und-datenbank-appender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

