問題タブ [event-receiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3267 参照

sharepoint - SharePoint のリストの SPItemEventReceiver アセンブリ バージョンを更新する方法は?

独自のアセンブリにコンパイルされた SPItemEventReceiver があります。

STSDev を使用して、この EventReceiver をフィーチャーとして SharePoint ソリューションをパッケージ化しています。SPItemEventReceiver を elements.xml 内の特定の ListTemplateId に割り当てるのではなく、feature.xml 内で ReceiverAssembly をリンクし、SPItemEventReceiver を複数の SPList アイテムにプログラムで割り当てています。

私は FeatureDeactivating を使用して上記のコードの逆を行い、リストから EventReceiver を削除しています。

質問:

LabReportEventHandlers が更新され、バージョンが変更される将来のイベントをどのように処理すればよいですか?

これらは私が考えることができるオプションです:

  1. 非アクティブ化/再アクティブ化機能 -- 更新された dll を SharePoint ソリューション ファイルにラップし直し、上記のコードを変更して新しいバージョンを反映させ、stsadmin を使用してソリューションをアップグレードします。次に、機能を非アクティブ化/再アクティブ化します。

  2. アセンブリ リダイレクトを web.config に追加します。

  3. LabReportEventHandlers のバージョン番号を上げないでください。

ソリューションのバージョンを変更すると、何か役立つことがありますか?

3つのオプションには問題があると思います:

  1. 機能を無効にした後、私が再度有効にする前に誰かがアイテムを更新する可能性があります。

  2. web.config を手動で編集したくないので、代わりに sharepoint API を使用します。そのコードをどこで実行しますか?

  3. これは単純に間違っていますが、簡単です。

0 投票する
3 に答える
1039 参照

sharepoint - SharePoint: ContentType から EventReceiver を登録解除する際のエラー

一部のイベントレシーバーを contenttype から登録解除する際に問題が発生しました。contenttype とレシーバーは自分でデプロイして登録したので、MOSS の組み込みまたは内部のイベントレシーバーを削除しようとはしません。

次のコード スニペットを使用してこれをアーカイブしようとしています。

残念ながら、コマンド「type.Update()」は、コレクションを変更できないことを示す例外をスローします。コードでわかるように、この問題を解決するために、安全でない更新を許可したり、昇格された特権でこのコードを実行したりするなど、さまざまなことを既に試しました。しかし、私はいつも同じ例外を受け取ります。

それで、私は何を間違っていますか?

0 投票する
1 に答える
2666 参照

sharepoint - SharePoint ドキュメント ライブラリのファイルを更新する

簡単に言えば、ドキュメント ライブラリに独自のカスタム dll を使用するカスタム editForm.aspx があります。ユーザーがレコードを編集すると、ファイルに関連付けられたすべてのプロパティを更新できますが、実際のドキュメントを更新 (つまり、置換) してから Update() (または SystemUpdate()) すると、次のようになります。

ファイル BLAH.doc は、2009 年 5 月 1 日 09:41:12 +0100 に DOMAIN\ACCOUNT によって変更されました。

ファイルは置き換えられますが、ファイルのプロパティは更新されないため、パスとファイル名は古いバージョンと同じです!?

この投稿: http://hristopavlov.wordpress.com/2008/05/14/uploading-a-file-event-receivers-the-file-has-been-modified-by/ は、イベントレシーバーの使用を提案しています。 DisableEvents() を使用して、ワークフローに同様の問題があります。これは素晴らしいことですが、編集フォームを変更してイベント レシーバーを操作する方法がわかりません。ドキュメント ライブラリ内のファイルの更新に関するドキュメントやチュートリアルはありますか? また、イベント レシーバーを使用してこれを行う方法はありますか?

0 投票する
3 に答える
2785 参照

sharepoint - リモート デバッガーを使用して SharePoint EventReceiver をデバッグするにはどうすればよいですか?

SharePoint EventReceiver (Windows SharePoint Services 3.0) を作成しましたが、別のコンピューターで実行される Visual Studio 2008 SP1 でデバッグしたいと考えています。次の手順を試しました。

  • イベント レシーバーをインストールします (ログ ファイルがコードが実行されたことを証明するため、これが機能することはわかっています)。
  • イベント レシーバー クラス ライブラリを SharePoint サーバーの GAC に登録します (デバッグ モードでビルド)。
  • SharePoint サーバーで Visual Studio リモート デバッグ モニターを起動しています。
  • ローカル マシンから SharePoint サーバー上のプロセス w3wp.exe にアタッチします。

残念ながら、Visual Studio から、設定したブレークポイントに到達しないことが通知されます。アセンブリを GAC にインストールすると、デバッグ シンボル (またはデバッグに必要なもの) が失われると思います。

イベント レシーバーをデバッグするにはどうすればよいですか? 私の知る限り、カスタム アセンブリによって SharePoint を拡張する唯一の方法は、それらを GAC に展開することです。ここで何か不足していますか?

敬具
オリバー・ハナッピ

0 投票する
1 に答える
3210 参照

.net - SharePointサイトのすべてのリストにEventReceiverをアタッチします

リストが更新されたときに発生するeventreceiverを作成できますか?eventreceiverに指定する必要のあるlisttemplateidにより、コードは1種類のリストに固有のものになります。サイトのすべてのリストのイベントに対してコードを実行させたい場合はどうなりますか?

0 投票する
4 に答える
17080 参照

sharepoint - イベント レシーバーを使用してアイテムの「タイトル」フィールドを更新する

「ページ」リストの「ItemAdded」イベントでアクティブ化されるイベント レシーバーを作成しました。コードは正常に実行されますが、私の問題はこれです。Sub ItemAdded の呼び出し中に、現在のリスト アイテム (この場合は aspx ページ) に属するフィールドの値を変更したいと考えています。

アイデアは、イベント レシーバーが構成する別の値になるように「タイトル」フィールドを構成できるということです。ユーザーが編集モードでページを表示するまでに、新しいタイトルがページに保存されます。これが私の現在の試みです:

ご覧のとおり、Update() と SystemUpdate() の両方を試しましたが、どちらの場合も、ユーザーがページをチェックインしようとすると、ページが外部で変更されたというメッセージが表示されます。さらに、ページを表示すると、タイトル フィールドの値は変更されていません。

私がやろうとしていることは可能ですか、それとももっと良い方法がありますか?

乾杯。ジャス。

0 投票する
1 に答える
5598 参照

sharepoint - イベントレシーバーの読み込みと実行中にエラーが発生しましたMicrosoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver

カスタムSharePointワークフローをカスタムItemAddedイベントレシーバーにアタッチしました。これは、WSPBuilderを使用して最後にプロモートしたタイプまで正常に機能していました。

私のコードはこの例に非常に近いです:http://www.codeproject.com/KB/sharepoint/MOSS_FolderContentTypeWF.aspx

過去にWSPBuilderを使用しましたが、このプロジェクトでは使用していません。ワークフローが何らかの理由で壊れているようです。

ワークフローが開始されるべきなのに開始されず、イベントログを見ると、次のエラーが表示されます。

イベントレシーバーMicrosoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiverのMicrosoft.SharePoint、バージョン= 12.0.0.0、Culture = neutral、PublicKeyToken=71e9bce111e9429cの読み込みと実行中にエラーが発生しました。

追加情報は以下のとおりです。

:指定されたオブジェクトはリストに属していません。

そのため、イベントハンドラーを無効にし、削除しても、このドキュメントライブラリでエラーが発生します。エラーは他のサイトのドキュメントライブラリでは生成されません。SharePointの内臓でイベントレシーバーを壊しましたか?

アイデア?

0 投票する
2 に答える
11125 参照

sharepoint - Sharepoint : イベント レシーバー : アイテムの追加

検証のためにSharepointのイベントレシーバーで「ItemAdding」メソッドを正常に使用した人はいますか?

次のように思われるため、検証目的では適切に機能しないと思います。

  • フォームに入力したばかりのデータにアクセスできません
  • エラーメッセージを追加すると、フォームをエラーとともに表示する代わりに、Sharepoint
    は大きな醜いエラーページを表示します。

ItemAdding メソッドについてこれまでにウェブで見つけたものは次のとおりです。

http://www.sharepoint-tips.com/2006/09/synchronous-add-list-event-itemadding.html

http://www.moss2007.be/blogs/vandest/archive/2007/07/20/wss-3-0-event-handler-pre-event-cancelling-issues.aspx

http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=25

とにかく、誰かがその方法をうまく使用した場合は、それが壊れている/何かが欠けているだけだと思う​​ので、その方法を教えてください!

ありがとう!

0 投票する
3 に答える
4739 参照

sharepoint - 未処理のアクセス例外が発生しました、msmq、Sharepoint エラー

サーバーの再起動後に問題が発生しています。さまざまなことを行うために、SharePoint にはいくつかの機能があります。彼らが行うことの 1 つは、アイテムをいくつかの異なる MSMQ キューに追加することです。サーバーの再起動直後に、SharePoint にログインしようとして自分のカスタム ページに移動し、そのページ内のボタンをクリックすると (msmq アイテムが作成されます)、続く:

この Web サイトは、この Web ページの表示を拒否しました このエラー (HTTP 403 Forbidden) は、Internet Explorer が Web サイトに接続できたが、Web ページを表示する権限がないことを意味します

イベント ログを詳しく調べると、アプリケーションに次のエラーが見つかります。

また、SharePoint ログを詳しく調べると、次のエラーが見つかります。

/my/site/url/MyPage.aspx へのアクセス時のアプリケーション エラー、エラー = アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED)) サーバー スタック トレース: System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String nodeName、Guid resourceManagerIdentifier、IntPtr managedIdentifier、Boolean& nodeNameMatches、UInt32& whereaboutsSize、CoTaskMemHandle& whereaboutsBuffer、IResourceManagerShim& resourceManagerShim) で System.Transactions .Oletx.DtcTransactionManager.Initialize() で System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory() で System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(TransactionOptions プロパティ) で System.Transactions.TransactionStatePromoted.EnterState(InternalTransaction tx) ...
... at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
System.Transactions.Transaction.Promote() で System.Transactions.TransactionInterop.ConvertToOletxTransaction (トランザクション トランザクション) で System.Transactions.TransactionInterop.GetDtcTransaction (トランザクション トランザクション) で System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction (MsmqTransactionMode transactionMode) で.ServiceModel.Channels.MsmqQueue.SendDtcTransacted(NativeMsmqMessage メッセージ、MsmqTransactionMode transactionMode) で System.ServiceModel.Channels.MsmqQueue.Send(NativeMsmqMessage メッセージ、MsmqTransactionMode transactionMode) で System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend(メッセージ メッセージ、TimeSpan タイムアウト) でSystem.ServiceModel.Channel...

私は 2 つの VM を持っています。1 つは Web (sharepoint) マシン用で、もう 1 つは DB マシン (すべてのコンテンツ データベースなどが保存されている場所) 用です。DB サーバーはプライマリ ドメイン コントローラであり、両方のマシンが同じドメインの一部です。SharePoint アプリケーション プールに使用するドメイン ユーザーを作成しました。

奇妙なことに、アプリケーションの別の部分に移動してそのコードを実行することで、エラーを解消することができます (msmq にもエントリが追加されます)。それが完了すると、アプリケーションの残りの部分はすべて通常どおりに機能します。

どんな助けでも信じられないほど高く評価されます。

注: このエラーは、SharePoint サイトの IIS の匿名ユーザー (IUSR...) に関係していることに気付きました。そのユーザーをドメイン管理者ユーザーに変更したところ、エラーは発生しなくなりました。だから、それはIUSR..ユーザーの権限と関係がありますが、私は何を知りません...

0 投票する
2 に答える
1000 参照

c# - SPItemEventReceiverコンテキストSiteId/WebUrlが正しくありません

アイテムの更新時に起動するSharePointイベントレシーバーを作成しました。受信者はAfterPropertiesとListItemにアクセスする必要があります。

IPアドレス(http://10.0.4.50/sites/)を使用してSharePoint Webアプリケーションからイベントレシーバーを起動すると、SPItemEventPropertiesのSiteIdおよびWebUrlにアクセスするときに FileNotFoundExceptionがスローされます。http://10.0.4.50/sites/companyNameのWebアプリケーションが見つかりませんでした。URLを正しく入力したことを確認してください。

サイトコレクションhttp:// computerhostname / sites/companyNameのセットアップで指定されたホスト名を使用してイベントレシーバーを起動する場合。これは正常に機能し、例外はスローされません。