Donnerstag, Dezember 2, 2010, 03:40 PM
Manchmal verstehe ich Microsoft Software wirklich nicht...Ich hatte einen ganz einfachen Fall:
Eine ASP.NET-Formular sollte einige Informationen in der Session vorhalten. Nach dem Submit sollte wieder auf die Informationen des ersten Aufrufs zugegriffen werden:
Seite.aspx.cs:
---------------
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Foo"] != "Bar")
{
//... Tue irgendwas nur einmal
Session["Foo"] = "Bar";
}
}Seltsamerweise war jedes Mal nach dem Submit die Sessionvariable leer, obwohl diese definitiv gesetzt wurde! Der Internet Explorer 8 akzeptierte auch cookies, und auch sonst war alles richtig. Das Phänomen trat unter Visual Studio 2010 auch auf anderen Rechnern auf.
Aber: Mit Firefox funktionierte es!
Warum wurde die Session unter Internet Explorer 8 gelöscht, unter Firefox blieb sie aber erhalten?
Aus Spaß suchte ich im gesamten Projekt nach "Session.Clear" und "Session.Abandon" und fand auch eine entsprechende Zeile. In der "Default.aspx.cs".
Default.aspx.cs:
-------------------
protected void Page_Load (object sender, EventArgs e)
{
Session.Abandon();
}Ich setzte einen Breakpoint in der "Default.aspx.cs", rief "Seite.aspx" auf und siehe da, der Debugger blieb nach dem Laden der Webseite in der Code-Behind der "Default.aspx" stehen! WTF?
Wurde "Seite.aspx" mit Firefox geladen, wurde "Default.aspx.cs" nicht angesprungen!
Die Lösung für die verschwundene Session war damit zwar behoben, aber es bleibt noch das Rätsel, warum der IE8 zumindest unter Visual Studio 2010 die Default-Seite lädt, obwohl sie gar nicht aufgerufen werden soll.
| Permalink
| Related Link
Donnerstag, Mai 20, 2010, 04:54 PM
Microsoft hat es zwar schon lang und breit angekündigt, aber man muss es doch gesehen haben, um es zu glauben: Der Internet Explorer 6 wird mit SharePoint 2010 nicht mehr unterstützt! HTML und JavaScript sind jetzt einfach nicht mehr kompatibel.Das ist zwar sehr lobenswert, aber einige Firmen werden dennoch Schwierigkeiten mit dieser Tatsache haben. Insbesondere große Konzerne haben oft weltweit noch IE6 im Einsatz.
Unten sind zwei Screenshots einer Standard SharePoint Site zu sehen:
Site mit IE7 geöffnet:

Site mit IE6 geöffnet:

Wie man ganz gut sehen kann, gibt es offenbar keine Chance, dass die Seite doch noch irgendwie mit IE6 benutzbar ist.
Donnerstag, März 4, 2010, 04:50 PM
Ok, das Thema ist zwar schon alt, aber im Zusammenhang mit dem neuen SharePoint Client OM wieder aktuell: Silverlight Cross Domain Calls.Silverlight Applets, die auf dem SharePoint Server liegen und per Microsoft.SharePoint.Client auf z.B. Listen zugreifen, funktionieren eigentlich auf Anhieb. Man greift hier auf den aktuellen Kontext zu (sprich, die aktuelle URL):
context = SP.ClientContext.Current;
Wenn man aber eine Silverlight Anwendung nicht als Sandboxed Solution direkt in SharePoint lädt, wird man beim ersten Versuch zu debuggen einen "Security.Error" bekommen, denn man muss jetzt die URL zum Server explizit angeben:
context = new SP.ClientContext("http://devserver001/sites/Jonka/");
Exception {System.Security.SecurityException ... etc
Silverlight versucht hier wieder auf die Datei "clientaccesspolicy.xml" zuzugreifen, um die Berechtigungen zu prüfen - man befindet sich schließlich gerade auf der Domain "localhost".
Also wird clientaccesspolicy.xml mit folgendem Inhalt ganz einfach im root der entsprechenden SharePoint Application abgelegt (z.B. C:\inetpub\wwwroot\wss\VirtualDirectories\80)
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://localhost:53659"></domain>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"></resource>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Man kann auch <domain uri="*"> eintragen, dann gibt es keine Beschränkung der URL.
Die Datei ist natürlich nicht aufrufbar, da SharePoint das Dateisystem nicht nach außen öffnet. Zum Glück gibt es in SharePoint 2010 immer noch die beliebten "Managed Paths", um solche Inhalte zu veröffentlichen.
In der Central Administration unter "Application Management" - "Manage web applications" im Ribbon kann die Einstellung geöffnet werden:

Hier eine "Explicit inclusion" anlegen, und /clientaccesspolicy.xml als Pfad angeben:

Ein Klick auf "Add Path", und alles sollte funktionieren:

Dann kann auch von der Visual Studio Debug-Umgebung aus auf SharePoint 2010 Listen zugegriffen werden:

Quellen:
http://www.silverlighthack.com/post/200 ... -2%29.aspx
http://timheuer.com/blog/archive/2008/0 ... sense.aspx
Dienstag, März 2, 2010, 05:34 PM
Silverlight und SharePoint zu verbinden macht seit Version 2010 und dem Client Object Model (komisch, dass das nicht COM abgekürzt wird... *hust*) auf einmal richtig Sinn. Es gibt auch viele Arten, aus VisualStudio 2010 heraus eine Silverlight Applikation zu deployen. Ich hatte mich zunächst für ein PostBuild Deployment in das SharePoint ClientBin entschieden, mit dem Standard Silverlight-WebPart für die Anzeige.Leider cached der Internet-Explorer das XAP-File immer, so dass Änderungen nicht Sichtbar werden, und manuell den Cache zu leeren, ist viel zu umständlich. Zum Glück kann man den Cache auch per Commando-Zeile löschen, auch wenn der Befehl sich einem nicht sofort erschließt: (Gilt natürlich nur für den Internet Explorer)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
Im Post-Build event steht also folgendes:

copy SilverlightSharePointDemo.* "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin"
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
Danach kann man mit F6 das Projekt kompilieren und mit F5 im Browser neu laden. Alle Änderungen sollten dann sofort sichtbar sein.
Quelle:
http://blogs.techrepublic.com.com/windo ... ows/?p=574
Montag, März 1, 2010, 05:59 PM
So, endlich mein erster Blogeintrag zu SharePoint 2010:Für den Anfang wollte ich mit Visual Studio 2010 RC auf SharePoint 2010 Beta2 ein Visual WebPart deployen. Also habe ich VS 2010 RC Premium auf dem bestehenden SharePoint Server installiert. Leider musste ich feststellen, dass die Premium Version von Visual Studio nicht die SharePoint Vorlagen enthielt, obwohl sie eigentlich enthalten sein müssten. Aber für den Release Candidate braucht man offenbar in jedem Falle die Ultimate Variante:
Ich empfehle dafür den Link auf das ISO File, der sich auf der Download-Seite ganz klein versteckt:
http://download.microsoft.com/download/ ... Ult_RC.iso
Nachdem das installiert ist, kann man auch die SharePoint Vorlagen auswählen und eine Site des lokalen SharePoint zum Deployen und Debuggen angeben:

Leider bekam ich immer sofort oder beim Starten mit F5 einen der folgenden Fehler angezeigt:

"Could not load the Web.config configuration file. Check the file for any malformed XML elements, and try again. The following error occurred: The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm."
oder:

"Cannot connect to the SharePoint site: ... Make sure that the site URL is valid, that the SharePoint site is running on the local computer, and that the current user has the necessary permissions to access the site. [...]"
Unten in der Error List gibt es auch noch eine Meldung:

"Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm."
Das ist natürlich nicht sehr aussagekräftig, denn natürlich läuft der lokale SharePoint und lässt sich auch lokal aufrufen. Also habe ich in einer WinForms-Anwendung versucht über das normale Objektmodell (SPSite) auf den Server zuzugreifen und siehe da, der Benutzer hat keine Datenbank-Berechtigungen!
In der neuen Kombination von Windows Server 2008 R2 und SQL Server 2008 R2 hat eben nicht mehr jeder lokale Admin auch gleichzeitig volle Datenbank-Berechtigungen - auch dann nicht, wenn alles auf einem System installiert ist. Auch hilft es offenbar nicht, den Benutzer als SharePoint Farm-Administrator einzutragen.
Das ist insofern komisch, da man hingegen Zugriff auf die SharePoint-Admin und -Search Datenbanken erhält. (Bug oder Feature?)
Gibt man seinem Benutzer, mit dem man am System angemeldet ist, Zugriff auf die entsprechende Content-DB (z.B. SharePoint_Content_1234567890) und die Config-DB (z.B. SharePoint_Config_1234567890) kann man auch wieder auf das Objektmodell zugreifen und das Debugging klappt.
Weiter

Calendar



