사이트 제목을 클릭 할 때까지 SharePoint 홈 페이지 변경이 작동하지 않습니다.

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/59021

  •  10-12-2019
  •  | 
  •  

문제

PowerShell을 사용하여 SharePoint 2010에서 하위 사이트를 설치하고 있습니다.모든 하위 사이트의 경우 로그인 후 특정 하위 사이트의 default.aspx 페이지로 특정 하위 사이트의 default.aspx 페이지를 시작하는 SharePoint를 구성했습니다.내 유스 케이스의 경우이 하위 사이트에서 사용되는 기능의 일부로 작성되는 페이지를 시작 하여이 동작을 재정의하고 싶습니다.기능의 EventReciever.cs에서 다음 코드를 사용하여 DOIND를 사용합니다.

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    using (var currentWeb = properties.Feature.Parent as SPWeb)
    {
        if (currentWeb != null)
        {
            var root = currentWeb.RootFolder;
            if (root != null)
            {
                root.WelcomePage = @"Management\Pages\LandingPage.aspx";
                root.Update();
            }

            //this.AddNavigationNodes(currentWeb);
        }
    }

    base.FeatureActivated(properties);
}
.

사이트의 제목 (왼쪽 상단)을 클릭 할 때까지 코드가 작동하지 않거나 기능을 활성화 한 다음 다시 활성화 할 때까지 작동하지 않습니다.코드가 어떤 종류의 트리거링 이벤트가 필요해 보입니다.내가 뭔가 잘못하고 있니?제발 도와주세요 ...

도움이 되었습니까?

해결책

기능 이벤트 수신자 의이 코드는 기능의 활성화가 완료된 후에 실행됩니다.

msdn SPFeatureReceiver.FeatureCeiver.FeatureCaivated 메서드 :

기능이 활성화 된 후에 발생한 이벤트를 처리합니다.

이 메소드는 기능이 활성화되면 호출됩니다.

사용자가 환영 페이지를 임의로 설정하는 경우 사용자 PowerShell을 다음과 같이 설정할 수 있습니다.

$site = Get-SPSite -Identity "http://server:port/";
$web = $site.OpenWeb("WebName");
$web.RootFolder.WelcomePage = "/Path/Page.aspx";
$web.Update();
$web.Dispose();
$site.Dipose();
Write-Host "Successfully updated the Welcome Page"
.

다른 팁

다른 대안은 사용자가 사이트에 닿을 때까지 의도적으로 기다리고 값을 설정하고 사용자를 리디렉션하고 자체를 비활성화하는 추가 페이지 헤드에 주입 된 컨트롤을 사용합니다.

요소 파일 :

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Control
    Id="AdditionalPageHead"
    Sequence="1000"
    ControlSrc="~/_controltemplates/MySites.Branding/WebPartInjector.ascx">
  </Control>
</Elements>
.

injector.ascx의 뒤에있는 코드 :

public partial class WebPartInjector : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        using (new SPMonitoredScope("MySites.Branding WebPartInjector Page_Load"))
        {
            SPWeb curWeb = SPContext.Current.Web;

            try
            {
                //*******DO STUFF HERE********

                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    try
                    {
                        curWeb.Features.Remove(new Guid("This-is-where-you-put-the-guid-of-the-feature"));
                    }
                    catch
                    {
                        //swallowing deactivation of self error 
                    }

                });
                curWeb.AllowUnsafeUpdates = false;
                Context.Response.Redirect(curWeb.Url);

            }
            catch (Exception g)
            {

                Logger.LogError(g, "WebPartInjector"); ;
            }
        }
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top