2

CoreService SessionAwareCoreServiceClient を使用してアイテムを削除できません。コンポーネントの作成/読み取り、フォルダーの作成ができます... . エラーとして、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されました。Tridion Content Manager マシン外のアプリケーションでコア サービスを使用していることに注意してください。CM サーバーからのログは次のとおりです。

ユーザー: NT AUTHORITY\NETWORK SERVICE

StackTrace 情報の詳細: Tridion.UGC.EventHandler.UGCEventHandler.GetDataSourcesForTCM(String[] tcm) で Tridion.UGC.EventHandler.UGCEventHandler.DeleteItemStats(TcmUri tcm) で
Tridion.UGC.EventHandler.UGCEventHandler.HandlerForCommitted (IdentifiableObject サブジェクト、DeleteEventArgs args、EventPhases フェーズ) で System.RuntimeMethodHandle._InvokeMethodFast (IRuntimeMethodInfo メソッド、オブジェクト ターゲット、Object[] 引数、SignatureStruct& sig、MethodAttributes methodAttributes、RuntimeType typeOwner) で System. RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo メソッド、オブジェクト ターゲット、Object[] 引数、シグネチャ sig、MethodAttributes methodAttributes、RuntimeType typeOwner) System.Reflection.RuntimeMethodInfo.Invoke(Object obj、BindingFlags invokeAttr、バインダー バインダー、Object[] パラメーター、CultureInfo カルチャ、 Tridion.ContentManager.Extensibility.EventSubscription.DeliverEvent(IEnumerable) の System.Delegate.DynamicInvokeImpl(Object[] args) の Boolean skipVisibilityChecks)1 subjects, TcmEventArgs eventArgs, EventPhases phase) at Tridion.ContentManager.Extensibility.EventSystem.DeliverEvent(IEnumerableTridion.ContentManager.IdentifiableObject.Delete (
DeleteEventArgs
deleteEventArgs) で Tridion.ContentManager.IdentifiableObject.Delete( ) Tridion.ContentManager.CoreService.CoreServiceBase.Delete(String id) で
SyncInvokeDelete(Object , Object[] , Object[] ) で System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object インスタンス、Object[] 入力、Object[]& 出力) で Tridion.ContentManager.CoreService.TransactionSupportInvoker.Invoke(Objectインスタンス、Object[] 入力、Object[]& 出力) System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) で System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) で System.ServiceModel.Dispatcher.ImmutableDispatchRuntime. System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) での ProcessMessage41 (MessageRpc& rpc) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) で System.ServiceModel.System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) の Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) の System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) ) System.ServiceModel.Dispatcher.MessageRpc.Process (Boolean isOperationContextSet) でrpc) System.ServiceModel.Dispatcher.MessageRpc.Process (Boolean isOperationContextSet) でrpc) System.ServiceModel.Dispatcher.MessageRpc.Process (Boolean isOperationContextSet) で

使用済みアカウントを使用すると、アイテムを手動で削除できます。つまり、適切な権限があることを意味します。ヘルプ/提案は、使用できる以上のものです...


 _client = new SessionAwareCoreServiceClient("wsHttp_2011");
            bool useWindowsCredentials = bool.Parse(Environment.EnvironmentUserSettings.UseWindowsCredentials);
            var credentials = CredentialCache.DefaultNetworkCredentials;
            if (!useWindowsCredentials)
            {
                string password=Environment.EnvironmentUserSettings.Password;
                credentials = new NetworkCredential(Environment.EnvironmentUserSettings.UserName, password);
            }

            _client.ChannelFactory.Credentials.Windows.ClientCredential = credentials;

このコードはなりすましに使用されます。設定ファイル内には、Windows 資格情報を使用するか、設定ファイルの資格情報を使用するかを決定するオプションがあります。Windows LDAP アカウントを使用するか、資格情報を手動で入力すると、エラーが発生しました。私はまだこれに SDL Administrator を使用しようとはしていません。私はそれを試して、あなたに知らせます。とにかく、がんばってくれてありがとう

@UPDATE: 基本的な http エンドポイントで通常の CoreService を使用しようとしましたが、同じエラーが発生します。したがって、認証はここで問題を引き起こしません。UGC イベントで問題が発生しているようです。残念ながら、コード ソースも UGC 対応 dll に関する追加情報もありません。

4

1 に答える 1