O Cenário
Você acabou de restaurar um backup, tentou rodar o site pela primeira vez e viu o seguinte erro:
Este problema é bem simples de resolver, o próprio erro já nos qual é, e onde esta o problema.
O Problema
Não é comum, mas alguns programadores insistem em usar código de server no cliente, ou seja, escrevem código C# em arquivos aspx ou ascx, não vejo motivos para se fazer isso, mas é fato que tem gente que faz, nestes casos você irá ver códigos parecidos com este
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<%@ Page Language="C#" %> <html dir="ltr"> <head id="Head1" runat="server"> <META name="WebPartPageExpansion" content="full"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled 1</title> </head> <body> <form id="form1" runat="server"> </form> </body> </html> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { form1.InnerHtml = "<h1>Hello</h1>"; } </script> |
O Sharepoint não permite este tipo de coisa, pois, em tese, um usuário poderia fazer upload de um aspx com código mal intencionado e executá-lo como se ele fosse uma página legítima e confiável do Sharepoint. Sendo assim, você já pode deduzir que utilizar a técnica “spaghetti code”, demonstrada acima, não é uma boa estratégia. Porém, se você esta dando manutenção em algum projeto, não vai querer resolver os “erros” dos outros, neste caso, você deve configurar o Sharepoint para permitir esse sacrilégio.
A Solução
Edite o webconfig
e adicione o seguinte
1 2 3 4 5 6 7 8 9 |
<SharePoint> <SafeMode MaxControls="200" CallStack="true" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false"> <PageParserPaths> <PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" /> <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" /> </PageParserPaths> </SafeMode> ... <SharePoint> |
No código acima, configuramos o sharepoint para permitir “spaghetti code” tanto na masterpage como nas demais páginas.
Feio né?