1

どういうわけか、新しい Web アプリケーションを作成するたびに、ファーム内のすべての SharePoint アプリケーション web.config に追加の "Telerik.Web.UI.WebResource.axd_*" ハンドラーが自動的に追加されます。新しい Web アプリが作成されるたびにファーム上のすべてのサイトが壊れているため、この変更を取り除く必要があります。これを行う方法がわかりません。Telerik 製品 (SharePoint 用 RadControls) をアンインストールしても問題は解決しませんでした。(実際、アンインストール プロセスにより、手動で削除した web.configs にハンドラーが不可解に再追加されました。)

いくつかの調査を行ったところ、次のページで説明されているように、新しい Web アプリの web.config は 3 つの手順で生成されるようです (「web.config ファイルはどこから来たのか」まで下にスクロールします)。

http://www.charleslee.co.uk/blog/2010/10/28/webconfig/

手順:

  1. ルート web.config が適用されます...私の場合、このファイルは変更されていません。
  2. 追加の web.config が適用されています... 最近作成されたものや、Telerik と関係があるものはありません。
  3. 構成 DB の変更が適用されている...ファーム上のすべての Web アプリのすべての SPWebConfigModification の変更を列挙するアプリを作成しましたが、Telerik に関連するものは何も返されませんでした。

私の質問は、新しい Web アプリ用に web.configs が生成される方法に関して何が欠けているのでしょうか?

4

1 に答える 1

0

気にしないで、私は問題を解決しました。元の投稿での私の質問に対する答えは、構成の生成方法について何も見逃していないということです。問題は、すべての SPWebConfigModification mod を反復処理する手順が明らかに間違っていたことです (これは文書化されていますか?)。ファームのインスタンスを取得して SPWebService Web アプリを反復処理する代わりに、SPWebService.ContentService によって返される mod を反復処理するように変更しました。これにより、行われた Telerik の変更が明らかになりました。

SPWebService spService = SPWebService.ContentService;
if (spService != null)
{
    Collection<SPWebConfigModification> modifications = spService.WebConfigModifications;
    if (modifications != null)
    {
        for (int i = modifications.Count - 1; i >= 0; i--)
        {
          ...
        }
    }
}

その質問が途切れたので、不要な mod を削除するコードに取り掛かることができます。

于 2013-01-10T04:06:51.950 に答える