Páginas fantasmas no SharePoint não são renderizadas

Aplica-se a
SharePoint Server 2019 SharePoint Server 2016 SharePoint Foundation 2013 SP1 Microsoft SharePoint Foundation 2010 Service Pack 2

Sintomas

Depois que você instala uma das seguintes atualizações, algumas páginas fantasmas no Microsoft SharePoint não são renderizadas:

Por exemplo, as páginas do portal do MIM (Microsoft Identity Manager) e algumas páginas personalizadas que são implantadas por meio da Solução do SharePoint não são renderizadas.

Além disso, um ou mais dos cenários a seguir podem ocorrer.

Cenário 1

A página fantasma bloqueada exibe uma das seguintes mensagens de erro:

Observação

  • O atributo "autoeventwireup" não é permitido nesta página.

  • O atributo "enablesessionstate" não é permitido nesta página.

  • Blocos de código não são permitidos neste arquivo.

  • O manipulador de eventos "OnSelectedIndexChanged" não é permitido nesta página.

    Observação O evento na última mensagem de erro também pode ser outro evento, como "OnClick".

Cenário 2

A página fantasma bloqueada exibe a seguinte mensagem de erro:

Observação

UnsafeControlException: um Controle de Web Part ou Web Form nesta Página não pode ser exibido ou importado. O tipo não pôde ser encontrado ou não está registrado como seguro.

Cenário 3

A página fantasma bloqueada exibe a seguinte mensagem de erro:

Observação

O arquivo referenciado '/_layouts/somedirectory/affectedusercontrol.ascx' não é permitido nesta página.

Causa

As páginas fantasmas são armazenadas no sistema de arquivos. Seu nível de segurança é aprimorado proibindo scripts do lado do servidor e controles não seguros. A renderização de uma página fantasma poderá ser bloqueada se as seguintes condições forem verdadeiras:

  • A página fantasma contiver código embutido ou script do lado do servidor.
  • O tipo code-behind ou o tipo web part não é registrado como seguro.

Resolução para o Cenário 1

Para resolve esse problema, adicione um novo elemento PageParserPath que tenha um atributo VirtualPath ao arquivo Web.config no elemento configuration/SharePoint/SafeMode/PageParserPaths.

Por exemplo, você recebe a seguinte mensagem de erro:

"O atributo 'autoeventwireup' não é permitido nesta página."

Nesse caso, você pode adicionar um elemento PageParserPath, da seguinte maneira:


<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
    <PageParserPaths>
        <PageParserPath VirtualPath="/<relativepath>/page.aspx" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true"/>
    </PageParserPaths>
</SafeMode>

Se todas as páginas no mesmo diretório virtual tiverem que ser desbloqueadas, você poderá usar um elemento PageParserPath , da seguinte maneira:


<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
    <PageParserPaths>
        <PageParserPath VirtualPath="/<relativepath>/*" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true" IncludeSubFolders="True"/>
    </PageParserPaths>
</SafeMode>

Observação

  • VirtualPath é o caminho da página bloqueada.
  • VirtualPath deve se referir a uma página fantasma e não pode ser desconvertido de fantasma por nenhum usuário ou a um diretório que contenha tal página.
  • VirtualPath deve se referir a uma página que não faça referência a outra página ou a uma página master que possa ser desconvertida de fantasma, ou a um diretório que não contenha tal página ou página master.
  • DirectFileDependencies indica o número de dependências de arquivo direto permitidas. Se você receber uma mensagem de erro como "o número de dependências de arquivo direto permitido excede o limite", altere esse valor.

Resolução do Cenário 2

Para resolve esse problema, adicione um novo elemento SafeControls para determinado tipo, namespace e nome forte do assembly ao arquivo Web.config no elemento configuration/SharePoint/SafeControls, conforme descrito no elemento SafeControls (Solução). Em seguida, defina o atributo Safe como TRUE.

Para obter mais informações sobre o formato dos valores dos atributos no elemento SafeControls, consulte a tabela na etapa 12 da seção "Marcação dos Controles Seguros no Designer de Pacotes" de Instruções: marcar controles como controles seguros.

Resolução do Cenário 3

Para resolve esse problema, adicione um novo elemento SafeControls que usa o atributo Src ao arquivo Web.config no elemento configuration/SharePoint/SafeControls.

Por exemplo, você recebe a seguinte mensagem de erro:

"O arquivo referenciado '/_layouts/somedirectory/affectedusercontrol.ascx' não é permitido nesta página."

Nesse caso, você pode adicionar o elemento SafeControls , como nos seguintes exemplos:


< SafeControls>
    <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>

< SafeControls><SafeControl src="~/_layouts/somedirectory/*" includeSubFolders="true" safe="true" /></SafeControls>