作成したばかりの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の信頼レベルを "フル"に設定してみました(本番環境では絶対に行いませんが、問題を絞り込もうとしました)が、まだうまくいきませんでした。何か案は?ありがとう。
SharePointソリューション(.wspファイル)を使用してWebパーツを展開していますか? WSPBuilder をチェックしてください。また、 SharePoint Installer を使用します。この2つの間で、展開における多くの問題(人為的エラーによるものかどうかに関係なく)が発生します。たとえば、問題は環境で解決されています。
WebPart Assemblyの名前空間を変更したときにもこの問題が発生し、ソリューションのすべてのソースファイルで名前空間が更新されませんでした。
GACに展開してみましたか?
これは通常、Webパーツの名前をVisualWebPart1からMyNewWebPartに変更すると発生します。ソリューション全体で検索と置換を行った後、すべてのファイルとフォルダーの名前をVisualWebPart1でMyNewWebPartに変更します。この問題は、SharePointProjectItem.spdataファイルが更新されていないことが原因です。 SharePointProjectItem.spdataを開き、VisualWebPart1をMyNewWebPartに置き換えます。これはほとんどの場合問題を修正します。
ソリューション内のすべてのファイルを開き、VisualWebPart1への参照がないことを確認します。ある場合は、手動でMyNewWebPartに変更します。
わかりました、これは非常に遅いかもしれませんが、残りのために役立ちます。 Webパーツを作成し、「このページのWebパーツまたはWebフォームコントロールを表示またはインポートできません。タイプが見つからないか、安全として登録されていません。」というエラーが発生しました。
このWebパーツ内でChartを使用していることを理解し、Chartの参照を削除すると機能しました。したがって、Chartコントロールもタイプセーフとしてマークする必要があります。
Webパーツのすべての参照がタイプセーフであることを確認してください。
ジオ、
Webパーツを使用して久しぶりに、ここに手順を示しました。
http://www.codersbarn.com/?tag=/webpart
多分そこに助けることができる何かがあるでしょう。
アンソニー:-)
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>
まあ、あなたがすでに解決策を見つけたなら、それは素晴らしいことです。しかし、これはもっと探している人のためのヒントです。新しいWebパーツまたはビジュアルWebパーツを追加し、コードファイルやElement.xmlなどのファイル内の名前空間を置き換えるだけの場合。webpartファイルでも、この問題が発生する可能性があります。その理由は、上記のどこかで述べたように、。spdata fileで名前空間が変更されなかったことです。これはVisual Studio自体によって作成されたファイルです。念のため、inetrootのVirtual Directoriesを確認してください。ネームスペースがまだ古い場合は、ソリューションで検索を行って、競合しているネームスペースを見つけます。ほとんどの場合、project.spdataファイルにあり、誰もが無視する傾向があります。