web-dev-qa-db-ja.com

SharePoint Webパーツ:タイプが見つからないか、安全として登録できませんでした

作成したばかりのSharePoint Webパーツ(基本的には「Hello World」アプリのみ)があり、そのデプロイに問題があります。 .dllに署名し、.dwpを作成して、web.configに安全なコントロールとして登録しました。 Webパーツギャラリーに追加して、詳細を追加できます。しかし、ページに追加しようとすると、次のエラーが発生します。

このページのWebパーツまたはWebフォームコントロールは、表示またはインポートできません。タイプが見つからなかったか、安全として登録されていません。

以下は、私の.dwpファイルです。

<?xml version="1.0"?>
<WebPart xmlns="http://schemas.Microsoft.com/WebPart/v2">
   <Assembly>SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=################</Assembly>
   <TypeName>MyWebParts.SimpleWebPart</TypeName>
   <Title>My Simple Web Part</Title>
   <Description>A simple Web Part</Description>
</WebPart>

そしてweb.configに追加したエントリ:

<SafeControl Assembly="SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=################" Namespace="MyWebParts" TypeName="*" Safe="True" />

名前空間にワイルドカードを使用してみましたが、役に立ちませんでした。 web.configの信頼レベルを "フル"に設定してみました(本番環境では絶対に行いませんが、問題を絞り込もうとしました)が、まだうまくいきませんでした。何か案は?ありがとう。

11
Geo Ego

SharePointソリューション(.wspファイル)を使用してWebパーツを展開していますか? WSPBuilder をチェックしてください。また、 SharePoint Installer を使用します。この2つの間で、展開における多くの問題(人為的エラーによるものかどうかに関係なく)が発生します。たとえば、問題は環境で解決されています。

4
Kyle Trauberman

WebPart Assemblyの名前空間を変更したときにもこの問題が発生し、ソリューションのすべてのソースファイルで名前空間が更新されませんでした。

3
Tim Scarborough

GACに展開してみましたか?

2
IrishChieftain

これは通常、Webパーツの名前をVisualWebPart1からMyNewWebPartに変更すると発生します。ソリューション全体で検索と置換を行った後、すべてのファイルとフォルダーの名前をVisualWebPart1でMyNewWebPartに変更します。この問題は、SharePointProjectItem.spdataファイルが更新されていないことが原因です。 SharePointProjectItem.spdataを開き、VisualWebPart1をMyNewWebPartに置き換えます。これはほとんどの場合問題を修正します。

ソリューション内のすべてのファイルを開き、VisualWebPart1への参照がないことを確認します。ある場合は、手動でMyNewWebPartに変更します。

1
Poodle

わかりました、これは非常に遅いかもしれませんが、残りのために役立ちます。 Webパーツを作成し、「このページのWebパーツまたはWebフォームコントロールを表示またはインポートできません。タイプが見つからないか、安全として登録されていません。」というエラーが発生しました。

このWebパーツ内でChartを使用していることを理解し、Chartの参照を削除すると機能しました。したがって、Chartコントロールもタイプセーフとしてマークする必要があります。

Webパーツのすべての参照がタイプセーフであることを確認してください。

1
Tiger

ジオ、

Webパーツを使用して久しぶりに、ここに手順を示しました。

http://www.codersbarn.com/?tag=/webpart

多分そこに助けることができる何かがあるでしょう。

アンソニー:-)

0
IrishChieftain

Tim Scarboroughがすでに述べたように、これはnamespaceを変更し、すべてのソースファイルを更新しない場合に発生する可能性があります(これは自動的に行われないため)。実例として、私の場合、問題はwebpartクラスに新しい名前空間a.bがあったことでしたが、webpart fileでこれを更新するのを忘れていました。

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="http://schemas.Microsoft.com/WebPart/v3">
<metaData>
             //update below!
  <type name="a.b.yourClass, $SharePoint.Project.AssemblyFullName$" />

  <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
</metaData>
<data>
 <properties>
    <property name="Title" type="string">your Title</property>
    <property name="Description" type="string">your Description</property>
  </properties>
</data>
 </webPart>
</webParts>
0

まあ、あなたがすでに解決策を見つけたなら、それは素晴らしいことです。しかし、これはもっと探している人のためのヒントです。新しいWebパーツまたはビジュアルWebパーツを追加し、コードファイルやElement.xmlなどのファイル内の名前空間を置き換えるだけの場合。webpartファイルでも、この問題が発生する可能性があります。その理由は、上記のどこかで述べたように、。spdata fileで名前空間が変更されなかったことです。これはVisual Studio自体によって作成されたファイルです。念のため、inetrootのVirtual Directoriesを確認してください。ネームスペースがまだ古い場合は、ソリューションで検索を行って、競合しているネームスペースを見つけます。ほとんどの場合、project.spdataファイルにあり、誰もが無視する傾向があります。

0
user2473872