أن أكبر وقت النوم يكون الحل بالنسبة فشل التحديث ؟

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

  •  09-12-2019
  •  | 
  •  

سؤال

لدي مشكلة مع التحديث حل على المزرعة.لذلك علينا تغيير بعض ميزات إضافة إلى اثنين من الميزات.وكانت التغييرات الرئيسية على القيام الميزة الرئيسية من الحل.

على اختبار لدينا سحابة workes بخير.على بيئة الاختبار لأول مرة يعمل بشكل جيد ولكن بعد نقل ذلك لم يعمل أي أكثر من ذلك.تحديث الميزات لم كلي المثبتة.هذا سيحدث في بيئة العميل أيضا وبعض آخر اختبار الانتشار قد حصلت نفس المشكلة.

لذلك قمنا بتغيير سيناريو التحديث قدمنا.في هذه النقطة لدينا وقت النوم بين التحديث-SPSolution قيادة الترقية من جميع الميزات من نشر الميزات.رفعنا وقت النوم من 20 ثانية إلى 5 دقائق.

تحديث جديد الآن سار على ما يرام, ولكن أردنا أن إعادة الدولة القديمة و تثبيت الحل مع التحديث القديم الملف مرة أخرى ، ولكن هذا يعمل بشكل جيد جدا ;-).(نعم هذا وضع أسوأ)

أهمية عملية التحديث تبدو هذه الطريقة:

Update-SPSolution -LiteralPath $wspFile -Identity $fileName -Force -GACDeployment -ErrorAction:Stop -ErrorVariable:updateError -Confirm:$false
Start-Sleep -Seconds $sleep
$site = Get-SPSite $SiteUrl
$siteFeatureToUpgrade = $site.QueryFeatures("Site", $true);
foreach($f in $siteFeatureToUpgrade)
{
    $f.Upgrade($false);
}

قيمة النوم مرة واحدة 20 مرة 300.على أية حال, يمكن أن يكون هذا وقت النوم يحل التحديث المسألة ؟ أنا لا أعتقد ذلك.

شكرا جزيلا لك.

هل كانت مفيدة؟

المحلول

على Update-SPSolution استدعاء غير متزامن.أكثر دقة, هذا الأمر فقط إنشاء جهاز توقيت العمل التي سيتم تشغيل في نهاية المطاف.

يمكنك استخدام هذه الوظيفة أن ننتظر نهاية تنفيذ المهمة :

function Wait-SPSolutionDeploymentJobToFinish
{
    param
    (
        [Parameter(Mandatory=$true)]
        [string]$SolutionFileName
    )
    process {
        $JobName = "*solution-deployment*$SolutionFileName*"
        $job = Get-SPTimerJob | ?{ $_.Name -like $JobName }
        if ($job -eq $null) 
        {
            Write-Host 'Timer job not found'
        }
        else
        {
            $JobFullName = $job.Name
            Write-Host -NoNewLine "Waiting to finish job $JobFullName"

            while ((Get-SPTimerJob $JobFullName) -ne $null) 
            {
                Write-Host -NoNewLine .
                Start-Sleep -Seconds 2
            }
            Write-Host  "Finished waiting for job.."
        }
    }
}

Update-SPSolution -LiteralPath $wspFile -Identity $fileName -Force -GACDeployment -ErrorAction:Stop -ErrorVariable:updateError -Confirm:$false


#Start-Sleep -Seconds $sleep
Wait-SPSolutionDeploymentJobToFinish $fileName

$site = Get-SPSite $SiteUrl
$siteFeatureToUpgrade = $site.QueryFeatures("Site", $true);
foreach($f in $siteFeatureToUpgrade)
{
    $f.Upgrade($false);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top