1


0

私の既存のWebパーツはSharePointで動作しません

私は標準のASP.NET 2.0 Webサイトを持っています。 Webページのページがあります。 私のWebサイトのWebパーツページに表示するCompany.Web.dllにWebパーツがあります。 すべてが良いです!!!

これと同じWebパーツをSharePoint 2007でも使用したいのですが。

私はExtensions for SharePoint 1.2を使ったVS2008の "サイト定義"プロジェクトを持っています。 私は自分のサイト定義に外部アセンブリからWebパーツを追加するためにさまざまな方法を試しました。 Webパーツ(WebパーツページのWebパーツリストに追加されている場所)を展開することはできましたが、それをページに追加するのに失敗しました。

私の栄光の失敗:

  1. 既存のWebパーツを表示するだけのシェルWebパーツを作成し、 基本的にはコントロールとして私の部分を使用しています。

  2. VS2008によって作成されたX.webpartおよびX.xmlファイルを変更しようとしました 新しいWebパーツを作成するとき。

どちらもWebパーツをページに追加するときに次のエラーが発生します。

_ 例外Microsoft.SharePoint.WebPartPages.WebPartPageUserException:XXXX Webパーツをインポートできません。 + Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections)at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager、XmlReader reader、Boolean clearConnections、Uri webPartPageUri、SPWeb spWeb)at Microsoft.SharePoint.WebPartPages.WebPartImporter。 Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)のインポート(SPWebPartManagerマネージャー、XmlReaderリーダー、ブール値clearConnections、SPWeb spWeb) _

既存のWebパーツをサイト定義に追加するために特別な方法がありますか?

4 Answer


1


https://stackoverflow.com/questions/120928/sharepoint-error-cannot-import-web-part[このSO質問]で読むことができるように、これは展開時にGUIDを解決する問題のように思えます。


0


ASP.NET WebパーツとSharepoint Webパーツは同じではありません*。 Sharepoint内でASPNET Webパーツを使用できるはずです。 次の表を参照してください。

  • ASP.NET 2.0 Webパーツ*

  • ほとんどのビジネスニーズに。

  • WebパーツをASP.NET 2.0またはSharePointサイトを実行しているサイトに配布します。

  • SharePointサイトのASP.NET 2.0サイト用に作成された1つ以上のWebパーツを再利用する場合。

  • Windows SharePoint Services 3.0によって提供されるデータまたは機能を使用するため。 たとえば、サイトデータまたはリストデータを扱うWebパーツを作成しているとします。

  • SharePointベースのWebパーツ*

  • SharePointベースのWebパーツインフラストラクチャを使用して一連のWebパーツをWindows SharePoint Services 3.0に移行する場合。

  • クロスページ接続を作成します。

  • Webパーツゾーンの外側にあるWebパーツ間の接続を作成する。

  • クライアント側の接続を操作する(Webパーツページサービスコンポーネント)。

  • コンテンツデータベースへのキャッシュを可能にするデータキャッシュインフラストラクチャを使用する。

Sharepoint Webパーツを標準のASPNETアプリケーションで機能させるには、Sharepoint 2007の参照を使用せずにVisual StudioでWebパーツを(ASPNET Webパーツとして)作成し直す必要があります。

私が過去に使った気の利いたツールの1つは、http://www.codeplex.com/smartpart[SmartPart]です。

これにより、Visual Studioで(視覚的に)ASP.NETユーザーコントロールを作成し、それをSharepointでホストすることができます。 smartpartは、ユーザーコントロールのラッパーwepartとして機能します。 それがHTMLページのASP.NET UserControlではなく、SharepointのページビューアWebパーツのように考えてください。


0


Webパーツがインポートされない理由の詳細を調べるには、ULSログを確認してください。 これらは通常 `%CommonProgramFiles%\ Microsoft Shared \ Webサーバーエクステンション\ 12 \ LOGS`にあります。 Webパーツをページに追加しようとしたときに、エントリがここに記録されます。 これにより、詳細がわかります。

これはコードアクセスセキュリティの問題であると私は思います。 Webパーツは厳密に署名されている必要があり、SharePoint Webアプリケーションのweb.configにSafeControlエントリが必要です。 これらのこととは別に、それをグローバルアセンブリキャッシュに追加してそれが機能するかどうかをテストすることができます(ベストプラクティスはCASポリシーファイルを作成することです)。 詳細については、http://msdn.microsoft.com/en-us/library/cc768621.aspx [Windows SharePoint ServicesへのWebパーツの展開]を参照してください。

サイト定義の一部として統合する前に、これらの手順を試してみます。 その後、少なくともWebパーツが実際に実行されることを知っています。

また、VSeWSSは本当に最初からそれを使ってあなたのWebパーツを開発するために設計されています。 元のソースがある場合は、VSeWSSを使用して新しいWebパーツを作成してから、カスタムコードに置き換えて、.webpartファイルとfeature XMLファイルを更新します。 それからそれはもう少し良く振る舞うべきです。 VSeWSSにコミットしていない場合は、http://www.codeplex.com/wspbuilder[WSPBuilder]を試してください。


-2


ASP.NET 2.0 WebPartsを使用するには、WSS 3.0、SharePoint MOSS、または2007が必要です。 SharePoint 2003以下およびWSS 2.0以下は、ASP.NET Webパーツをサポートしません。