アクセスが拒否された機能を有効にすると、SPFeatureceiverを実装していますか?
-
09-12-2019 - |
質問
SPFeatureceiverインタフェースを実装するいくつかの機能を開発しました。開発環境でこれを試してみると、 msdn からこのスクリプト:
function Set-RemoteAdministratorAccessDenied-False()
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") > $null
# get content web service
$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
# turn off remote administration security
$contentService.RemoteAdministratorAccessDenied = $false
$contentService.Update()
}
Set-RemoteAdministratorAccessDenied-False
.
スクリプトを実行してIISをリセットした後、それはすべて開発でうまく機能し、SICOPを設定したSite Settings > Manage Site Features
の機能(ファーム管理者として)をアクティブにすることができます。 http://mysolution/_layouts/managefeatures.aspx?scope= site 。アクティベーションの後、プロパティRemoteAdministRatorAccessDencessdenedを再度Trueに復元し、新しいIISRESET
を実行しました。
本番サーバーでは、機能の展開後に同じ手順を使用しました:
- set remoteAdministratorAccessDendened
- IISRESETと機能を有効にしようとしました - しかしそれは失敗しました。
戻ってきたエラーメッセージは次のとおりです。
.Server Error in '/' Application. -------------------------------------------------------------------------------- Security Exception Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. Exception Details: System.Security.SecurityException: Access Denied. Source Error: The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL: 1. Add a "Debug=true" directive at the top of the file that generated the error. Example: <%@ Page Language="C#" Debug="true" %> or: 2) Add the following section to the configuration file of your application: <configuration> <system.web> <compilation debug="true"/> </system.web> </configuration> Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode. Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario. Stack Trace: [SecurityException: Access Denied.] Microsoft.SharePoint.Administration.SPPersistedObject.BaseUpdate() +27451643 Microsoft.SharePoint.Administration.SPJobDefinition.Update() +152 Company.IssueTracker.Features.NewIssueTimerJob.NewIssueTimerJobEventReceiver.FeatureActivated(SPFeatureReceiverProperties properties) +837 Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce) +25671814 Microsoft.SharePoint.SPFeature.Activate(SPSite siteParent, SPWeb webParent, SPFeaturePropertyCollection props, Boolean fForce) +25676799 Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition featdef, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly) +27776095 Microsoft.SharePoint.SPFeatureCollection.AddInternalWithName(Guid featureId, String featureName, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly, SPFeatureDefinitionScope featdefScope) +150 Microsoft.SharePoint.SPFeatureCollection.Add(Guid featureId, Boolean force, SPFeatureDefinitionScope featdefScope) +83 Microsoft.SharePoint.WebControls.FeatureActivator.ActivateFeature(Guid featid, SPFeatureDefinitionScope featdefScope) +699 Microsoft.SharePoint.WebControls.FeatureActivatorItem.BtnActivateFeature_Click(Object objSender, EventArgs evtargs) +140 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11058199 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11057738 System.Web.UI.Page.ProcessRequest() +91 System.Web.UI.Page.ProcessRequest(HttpContext context) +240 ASP._layouts_managefeatures_aspx.ProcessRequest(HttpContext context) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.4963; ASP.NET Version:2.0.50727.4971
私の環境:SharePoint Server 2010
SharePoint 2007での実証質問:
解決
C.にリンクされているブログが、新しいTimerJobを追加するように正しいことである機能WebApplicationをスコープにしようとします。
私はあなたがもう一度仕事を取り除くことにあると仮定します。その場合、誰かが2つのWeb内の機能をアクティブにしてからそれらのいずれかから削除すると、問題があります。
他のヒント
あなたの問題はすでにここに取り組んでいると思いますか? afture activatedイベント受信機は、試行時にアクセスが拒否されましたそのため、WebApplicationプロパティを設定します そして、問題はさらに説明されていますここで説明されています> http://blog.bugrapostaci.com/tag/remoteadministratorAccessdenedDened/a>