アップデート
これは、サイト定義が SPWebApplication.Sites.Add から呼び出されたときにのみ発生することに注意してください。UI を使用すると、これは正常に機能します。私のコードは、このコードを呼び出すときにシステム アカウントを偽装しています。
SPSite の ApplyWebTemplate() メソッドが非同期であると考えるのは正しいですか? この場合、私の問題はおそらくタイミングの 1 つです。つまり、このコードの実行時には、必要なインフラストラクチャがまだ整っていません。
元の質問
SPProvisioningProvider を使用してサイト コレクションを構成するカスタム サイト定義があります。
ApplyWebTemplate("BLANKINTERNET#0") を呼び出して標準の発行ポータル サイト定義を適用した後、TOC ページ レイアウトのウェルカム ページに基づいて新しいページを作成しようとしています。
ただし、このコードを呼び出すと例外が発生します
Dim pubSite As New PublishingSite(_siteColl)
Dim pubWeb As PublishingWeb = PublishingWeb.GetPublishingWeb(site)
Dim layouts() As PageLayout = Nothing
layouts = pubWeb.GetAvailablePageLayouts(_welcomeContentTypeID)
次の例外は、GetAvailablePageLayouts メソッド呼び出しで発生します。
フィールド名が無効です。{7581e709-5d87-42e7-9fe6-698ef5e86dd3}
これは私たちのライブファームでのみ発生しています。開発環境やテスト環境では発生しなかったので、構成の変更であることを願っていますが、Tinterweb (sic) で見つけることができるすべての参照は、フィールド タイプ 'PublishingHidden' が欠落していることに関連していますが、どうすればこれを復元できますかこれがサイト コレクションのプロビジョニング プロセスで行われていることを考えると?
ありがとう
チャーリー