SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




ASP.NET Seite mi CodeBlocks in SahrePoint

Dieser Beitrag hat 10 Antworten

Ohne Rang
73 Beiträge
stoepsel007 erstellt 11 Mai 2010 13:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,
ich habe mir eine bestehende ASP.NET Datei meines SharePoint Systems kopiert. In diese Testsite möchte ich jetzt eigenen Code einbinden:

<script runat="server">
 protected override void OnLoad(EventArgs e)
 {
  base.OnLoad(e);
  Label1.Text = "Hello World!";
 }
</script>

Führe ich den Code aus, erhalte ich einen Fehler:
Fehler beim Verarbeiten von ../test1.aspx. Code blocks are not allowed in this file.

Wie kann ich Code trotzdem C# Code in meiner ASP.NET Datei ausführen?
Viele Grüße

Alle Antworten

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 11 Mai 2010 15:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In SharePoint ist kein Code erlaubt. Code musst du mittels Code-Behind und einer signierten DLL einbinden.

Ohne Rang
73 Beiträge
stoepsel007 Als Antwort am 12 Mai 2010 08:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Morgen,
grundsätzlich müsste das nach dieser Info ja eben doch gehen: http://mysharepointblog.com/post/2008/01/Running-Code-Blocks-In-Your-SharePoint-ASPX-Pages.aspx

Was meinst du?
Grüße

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 12 Mai 2010 08:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, ich sprach nur aus eigener Erfahrung. Diese Lösung kannte ich noch nicht, wird gleich mal gemerkt :)

Nach deinem Link sollte das Einfügen der angepassten Zeilen in die web.config dein Problem lösen.

bzw solltest du durch Einfügen von:

<PageParserPaths>
        <!-- To allow global: -->
        <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" />
</PageParserPaths>

für alle Seiten erlauben dürfen. Ich wäre aber immer vorsichtig, da jeder mit Rechten mit dem Designer dann C#- Code einfügen könnte, oder deinen verändern kann.

mfg
Ohne Rang
73 Beiträge
stoepsel007 Als Antwort am 12 Mai 2010 09:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Soweit habe ich das schon umgesetzt. Mir scheint es, als dass ich den Code in meiner ASP.NET Seite an falscher Stelle platziert habe.
Folgendes habe ich gemacht.
1. Kopie der default.aspx
2. Alle Webparts etc. löschen
3. Codeintegration:

<%@ Page language="C#" MasterPageFile="~masterurl/default.master"    Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" meta:webpartpageexpansion="full" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<script runat="server">


 protected override void OnLoad(EventArgs e)
 {
  base.OnLoad(e);
  Label1.Text = "Hello World!";
 }
</script>

//weiterer Code...

Wenn ich den Codeblock wie oben angedeutet nach dem @Page einbaue erhalte ich folgende Meldung:
Für alle <script>-Tags ist ein a type-Attribut erforderlich.

Hast du bzw, jemand einer der weiteren Leser dieses Threads eine Idee wo der code konkret einzubauen ist, so dass es funktioniert?
Viele Grüße

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 12 Mai 2010 09:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Fehlermeldung ist wörtlich zu nehmen :) Habe das auch vorhin probiert und bin drauf reingefallen.

<script runat="server" type="text/c#">

</script>

Wo das Script steht scheint egal.

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 12 Mai 2010 09:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

ja das muss natürlich noch hinzu type="text/C#", damit die Umgebung weiß um was für ein Script es geht: Javascript oder C#, oder was ganz anderes? :)

Ohne Rang
73 Beiträge
stoepsel007 Als Antwort am 12 Mai 2010 10:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Stimmt. Das habe ich ganz unterschlagen.
Jetzt klappt es wie ich es mir vorstelle. Vielen Dank für eure Hilfe!
Grüße

Ohne Rang
81 Beiträge
Dirk Weinert Als Antwort am 15 Dez. 2011 09:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="niceoldlady"]

In SharePoint ist kein Code erlaubt. Code musst du mittels Code-Behind und einer signierten DLL einbinden.

[/quote]

 

Moinsen,

sorry, dass ich diesen alten Beitrag herauskrame. ;-)
Ich stehe vor dem gleichen Problem, darf aber an der conf nichts ändern.
Habt Ihr einen Link zu einem Tutorial, das nachvollziehbar erläutert
wie man so eine signierte DLL erstellt?
Muss dazu SharePooint auch auf meinem Client laufen oder genügt
die Pro-Version des Visual Web Developers?

Vielen Dank
Dirk

 

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 15 Dez. 2011 09:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Naja, im wesentlichen erstellst du einfach ein ganz normales ASP.NET Custom-Control und bindest das dann in deine SharePoint-Seite ein. Wie man ein Control erstellt ist z.B. in diesem MSDN-Artikel beschrieben.

Das Signieren der DLL erreichts du über die Projekt-Einstellung. Außerdem musst du dann deine DLL mit dem CustomControl noch als Safe-Control in der web.config registrieren. Ganz ohne web.config Anpassungen geht es leider nicht. Aber dazu könntest du eine WSP-Datei erstellen, die du für das Deployment verwendest, und die die notwendigen Anpassungen an der web.config automatisch vornimmt.

Henning Eiben
busitec.de

Ohne Rang
81 Beiträge
Dirk Weinert Als Antwort am 15 Dez. 2011 09:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die schnelle Antwort.
Das scheint genau das zu sein,
was ich benötige. ;-)

Dirk