Einstieg in Parallelisierung – Parallel Task Execution in .Net 4.0

6. Juni 2012

Bei ASP Snippets gibt’s zum Einstieg in die Parallelisierung den Artikel Parallelism – Parallel Task Execution in .Net 4.0.

Und es gibt dabei auch Codebeispiele in VB.

DateTime.ToString – Formatierungen

22. Mai 2012

Eine gute Übersicht zur Formtierung eines Datums liefert die MSDN-Seite.

d: 6/15/2008
D: Sunday, June 15, 2008
f: Sunday, June 15, 2008 9:15 PM
F: Sunday, June 15, 2008 9:15:07 PM
g: 6/15/2008 9:15 PM
G: 6/15/2008 9:15:07 PM
m: June 15
o: 2008-06-15T21:15:07.0000000
R: Sun, 15 Jun 2008 21:15:07 GMT
s: 2008-06-15T21:15:07
t: 9:15 PM
T: 9:15:07 PM
u: 2008-06-15 21:15:07Z
U: Monday, June 16, 2008 4:15:07 AM
y: June, 2008

'h:mm:ss.ff t': 9:15:07.00 P
'd MMM yyyy': 15 Jun 2008
'HH:mm:ss.f': 21:15:07.0
'dd MMM HH:mm:ss': 15 Jun 21:15:07
'\Mon\t\h\: M': Month: 6
'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00

Berechtiungsfehler bei ASP.Net und Report (.rdlc Datei)

2. April 2012

Ich hatte bei einer ASP.Net 4.0 WebSite ein Problem beim Erstellen von Reports aus den rdlc Dateien nach Umstellung von Microsoft.ReportViewer.WebForms von 8 auf 10.
Und zwar bekam ich immer Fehler bei Expressions, sobald Felder aus einem DataSet oder Parametern verwendet wurden:

The Value expression for the textrun ‘Textbox4.Paragraphs[0].TextRuns[0]’ contains an error: Request for the permission of type ‚System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089‘ failed.

Nach monatelanger Suche fand ich dann die Lösung unter diesem Link.

Nachdem ich folgenden Code eingebaut habe, funktionieren die Reports wieder:

                Dim oReport As New Microsoft.Reporting.WebForms.LocalReport
                Dim permissionSet = New System.Security.PermissionSet(System.Security.Permissions.PermissionState.None)
                Dim flags = System.Security.Permissions.SecurityPermissionFlag.Execution _
                Or System.Security.Permissions.SecurityPermissionFlag.ControlPrincipal
                Dim permission = New System.Security.Permissions.SecurityPermission(flags)
                permissionSet.AddPermission(permission)
                oReport.SetBasePermissionsForSandboxAppDomain(permissionSet)

Warum das Problem allerdings nur bei dieser WebSite auftrat, und zwar sowohl auf der Entwicklunsgumgebung als auch auf dem Produktivsystem, ist mir weiterhin schleierhaft. Zumal ich noch mehrere andere WebSites mit derselben Konstruktion habe, bei denen das reibungslos klappt.

Stored Procedures in the Entity Framework

22. März 2012

Guter Post mit Sample und Video von Julie Lerman zum Thema Verwendung von Stored Procedures (und Views) mit Entity Framework (EF).

Windows Server 2008 R2 – Edition ändern ohne Neuinstallation

16. März 2012

… könnte noch interessant werden:
Upgrading Windows Server 2008 R2 without media

To determine the installed edition, run:
DISM /online /Get-CurrentEdition

To check the possible target editions, run:
DISM /online /Get-TargetEditions

Finally, to initiate an upgrade, run:
DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

So, for example, to upgrade to Windows Server 2008 R2 Datacenter from a downlevel edition, you would run:
DISM /online /Set-Edition:ServerDatacenter /productkey:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE

Falls jemand weiß, ob das auch für den Wechsel einer Enterprise Edition mit VL-Lizenz zu einer Enterprise Edition mit MSDN-Lizenz funktioniert zwecks P2V-Virtualisierung für ein Testsystem, wäre ich für einen Hinweis sehr dankbar!

Mit den Keys ist das ein wenig tricky; der folgende Post bringt da Licht ins Dunkel:  How to upgrade Windows Server 2008 R2 Standard to Enterprise.

Entscheidend ist wohl, dass man den öffentlichen Key verwendet:

DISM /online /Set-Edition:ServerEnterprise /ProductKey:489J6-VHDMP-X63PK-3K798-CPX3Y

 

SQL Server 2005 ausgesperrt

29. Februar 2012

Die Tage hatte ein Kollege ein „nettes“ Problem mit dem SQL Server 2005 Express Edition auf Win2k8 x64, an dem wir einigermaßen zu knabbern hatten:

Die Datenbank hatte die max. Größe von 4 GB erreicht und wollte nun nicht mehr so recht. Außerdem war die SQL Server Authentifizierung nicht aktiv und das sa-Konto (einziges Konto in der sysadmin-Rolle!!!) war deaktiviert.

Zum Glück konnten wir mit einem Domänen-/Windows-Benutzer einiges an Daten löschen, so dass wenigstens mal die DB wieder arbeitete.

Dann wollten wir den SQL Server im Einzelbenutzer-Modus / Single-User-Mode starten, bekamen aber den Fehler, dass für die TempDB zu wenig Platz sei.

Also erstmal Datenbank verkleinern und den Speicherplatz in den Files freigeben – geht ja relativ einfach über das SSMS.

Bei der Gelegenheit stellten wir auch wieder über das SSMS über die Server Properties in der Rubrik Security den Authentifizierungsmodus wieder um, so dass auch SQL Server Authentifizierung wieder geht.

Dann also auf dem Server direkt als lokaler Administrator angemeldet den SQL Server im Single-User-Mode gestartet:
Mit Kommandozeile ins Verzeichnis
c:\program files (x86)\Mircrosoft SQL Server\MSSQL.1\MSSQL\Binn
und dann:

sqlservr-m -e -s instanzname

Wenn alles klappt, startet der SQL Server im Single-User-Mode

Dann neue Kommandozeile im selben Verzeichnis:
osql -E -S .\instanzname

Dann zunächst das sa-Konto wie folgt wieder aktivieren:

ALTER LOGIN sa ENABLE
GO

Dann sicherheitshalber das Password des sa neu setzen:

ALTER LOGIN sa WITH PASSWORD='super-passwort'
GO
quit

Dann SQL Server durch Schließen der ersten Kommandozeile beenden und dann funktionierte alles wieder.

Fehler in ASP.Net WebForms mit vielen Controls: The URL-encoded form data is not valid.

11. Januar 2012

Nach dem Einspielen der Microsoft Updates Anfangs 2012 kam es plötzlich bei einigen meiner ASP.Net WebSites auf IIS zu seltsamen Fehlern der Form:

Operation is not valid due to the current state of the object. 
HttpException (0x80004005): The URL-encoded form data is not valid.

Wie ich nach zum Glück kurzer Suche herausfand, war ein Update daran schuldig und auf  Scotts Blog (nach „appSettings“ suchen) fand ich dann auch einen Weg, das Problem zu beseitigen.

Und zwar muss dazu in der Datei web.config unter appSettings folgeder Eintrag (der Zahlenwert muss individuell gewählt werden) hinzugefügt werden:

<add key="aspnet:MaxHttpCollectionKeys" value="3000"/>

Danach funktionierte alles wieder wie gehabt.

Verwalten von SQL Server mit der richtlinienbasierten Verwaltung

1. Dezember 2011

Man kennt das ja: DB angelegt, ein paar Kollegen halten sich nicht an die Namenskonvention für die DB-Objekte.
Darum habe ich heute ein paar Minuten Zeit investiert und mich mal mit den Richtlinien/Policies des SQL Server beschäftigt.

Dabei sind mir v.a. folgende Artikel untergekommen:

Mit der schönen Abfrage …

SELECT facet.name as ‚Facet Name‘,
OnDemand = CASE facet.execution_mode & 4
WHEN 4 THEN ‚On Demand; On Schedule‘
END,
OnChangeLogOnly = CASE facet.execution_mode & 2
WHEN 2 THEN ‚On Change, Log Only‘
END,
OnChangePrevent = CASE facet.execution_mode & 1
WHEN 1 THEN ‚On Change, Prevent‘
END
FROM msdb.dbo.syspolicy_management_facets facet

… lässt sich schön Abfragen, welche Facets (ich würde das mal als ZielObjekte bezeichnen) bestimmte Evaluation Modi unterstützen.

In meinem Fall wollte ich z.B. erzwingen, dass Tabellennamen in der Datenbank DB1 immer mit tDb1 beginnen. Leider scheint genau dieses über die Policies nicht unterstützt zu sein, da dafür der Evalutation Mode On Change:  prevent verwendet können werden müßte.

Es kann vermutlich nur über DDL Trigger realisiert werden.

Datumstypen im SQL Server

8. November 2011

Der Post mit dem bescheidenen Artikel Der ultimative Guide für die Datetime Datentypen ist zwar schon ein paar Tage alt, aber trotzdem sehr interessant und einigermaßen ausführlich.

Dateinamen der MMC Snap-Ins

2. November 2011

Immer wieder braucht man die Filenamen für die MMC, um sie direkt im Ausführen-Dialog aufzurufen. Heute bin ich zufällig auf eine Auflistung der meisten von Ihnen gestoßen:

Active Directory Management  admgmt.msc
ADSI Edit  adsiedit.msc
Application Server  appsrv.msc
Authorization Manager  azman.msc
Certificates  certmgr.msc
Certificate Authority  certsrv.msc
Certificate Templates  certtmpl.msc
Indexing Service  ciadv.msc
Component Services  comexp.msc
Computer Management  compmgmt.msc
Default Domain Controller Security Settings  dcpol.msc
Device Manager  devmgmt.msc
Disk defragmenter  dfrg.msc
Distributed File System  dfsgui.msc
DHCP  dhcpmgmt.msc
Disk Management  diskmgmt.msc
DNS  dnsmgmt.msc
Active Directory Domains and Trusts  domain.msc
Default Domain Security Settings  dompol.msc
Active Directory Users and Computers  dsa.msc
Active Directory Sites and Services  dssite.msc
Event Viewer  eventvwr.msc
Exchange System Manager  Exchange System Manager.msc
File Server Management  filesvr.msc
Shared Folders  fsmgmt.msc
Microsoft Fax Service Manager  fxsadmin.msc
Group Policy  gpedit.msc
Group Policy Management  gpmc.msc
Internet Authentication Service  ias.msc
Internet Information Services  iis.msc
IP Address Management  ipaddrmgmt.msc
Local Users and Groups  lusrmgr.msc
.NET Configuration 1.1  mscorcfg.msc
Removable Storage  ntmsmgr.msc
Removable Storage Operator Requests  ntmsoprq.msc
Performance  perfmon.msc
Enterprise PKI  pkiview.msc
Public Key Management  pkmgmt.msc
Routing and Remote Access   rrasmgmt.msc
Remote Storage  rsadmin.msc
Resultant Set of Policy  rsop.msc
Active Directory Schema  schmmgmt.msc
Local Security Settings  secpol.msc
Services  services.msc
Sidwalk  sidwalk.msc
Telephony  tapimgmt.msc
Terminal Services Configuration/Connections  tscc.msc
Remote Desktops  tsmmc.msc
UDDI Services Console  uddi.msc
Active Directory Users and Computers (Exchange version)  users and computers.msc
WINS  winsmgmt.msc
Windows Management Infrastructure (WMI)  wmimgmt.msc