Симптоми

След като инсталирате една от следните актуализации, някои призрачни страници в Microsoft SharePoint не се рендират:

Например страниците на портала на Microsoft Identity Manager (MIM) и някои персонализирани страници, които са разположени чрез решение на SharePoint, не се рендират.

Освен това може да изпитате един или повече от следните сценарии.

Сценарий 1

Страницата с блокирани призраци показва едно от следните съобщения за грешка: 

  • Атрибутът "autoeventwireup" не е разрешен в тази страница.

  • Атрибутът "enablesessionstate" не е разрешен в тази страница.

  • Кодови блокове не са разрешени в този файл.

  • Манипулаторът на събития "OnSelectedIndexChanged" не е разрешен на тази страница.

    Забележка Събитието в последното съобщение за грешка може да бъде и някакво друго събитие, като например "OnClick".


Сценарий 2

Страницата с блокирани призраци показва следното съобщение за грешка:

UnsafeControlException: Уеб част или контрола на уеб формуляр на тази страница не могат да се показват или импортират. Типът не може да бъде намерен или не е регистриран като безопасен.


Сценарий 3

Страницата с блокирани призраци показва следното съобщение за грешка:

На тази страница не е разрешен _layouts/somedirectory/affectedusercontrol.ascx.

Причина

Призрачните страници се съхраняват във файловата система. Нивото им на защита се подобрява чрез забраняване на скриптове от страна на сървъра и опасни контроли. Призрачна страница може да бъде блокирана за рендиране, ако са изпълнени следните условия:

  • Призрачната страница съдържа в ред код или скрипт от страната на сървъра.

  • Типът на типа на уеб частта или типът на уеб частта с код отзад не е регистриран като безопасен.

Решение за сценарий 1

За да разрешите този проблем, добавете нов елемент pageParserPath, който има атрибут VirtualPath към файла Web.config под елемента конфигурация/SharePoint/SafeMode/PageParserPaths.

Например получавате следното съобщение за грешка:

"Атрибутът "autoeventwireup" не е разрешен на тази страница".

В този случай можете да добавите елемент pageParserPath, както следва:

<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>


Ако всички страници в един и същ виртуален указател трябва да бъдат разблокирани, можете да използвате елемент PageParserPath, както следва:

<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>

  • VirtualPath е пътят на блокираната страница.

  • VirtualPath трябва да препраща към страница, която е призрачна и не може да бъде unghosted от който и да е потребител, или указател, който съдържа такава страница.

  • VirtualPath трябва да препраща към страница, която не препраща към друга страница или страница образец, която може да бъде unghosted, или указател, който не съдържа такава страница или страница образец.

  • DirectFileDependencies показва броя на разрешените преки зависимости на файлове. Ако получите съобщение за грешка, като например "броят на разрешените зависимости на директните файлове надхвърля ограничението", променете тази стойност.

Решение за сценарий 2

За да разрешите този проблем, добавете нов елемент SafeControls за дадения тип, пространство на имената и име на блока със силно име към файла на Web.config под елемента конфигурация/SharePoint/SafeControls, както е описано в елемента SafeControls (Решение). След това задайте атрибута Safe на TRUE.

За повече информация относно формата на стойностите на атрибутите в елемента SafeControls вижте таблицата в стъпка 12 в секцията "Маркиране на безопасни контроли в конструктор на пакети" на "Как да: Маркирай контролите като безопасни контроли".

Решение за сценарий 3

За да разрешите този проблем, добавете нов елемент safeControls, който използва атрибута Src, към файла Web.config под елемента конфигурация/SharePoint/SafeControls.

Например получавате следното съобщение за грешка:

"На тази страница не е разрешен _layouts/somedirectory/affectedusercontrol.ascx".

В този случай можете да добавите елемента SafeControls, както е в следните примери:

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

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

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?

Благодарим ви за обратната връзка!

×