私はSharePoint 2010公開サイトで作業しています。これは、aspを使用して構築された従来のサイトを置き換えています。Sharepoint 2010カスタム404ページ - asp拡張子
公開され、匿名であるため、カスタム404ページを実装しています。不思議なことに、これは単純なOOTB(通常のような)ではありませんが、私は404ページを展開してイベントレシーバーを使用してリンクしています。完璧、うまく動作します。
したがって、テストでは、存在しなかったランダムなページをいくつか入力してみました。 .htm、.html、および.aspxでは正常に動作しました。次に、.asp拡張子を試しました。これは、未処理のブックマーク/検索エンジンのリンクがすべて基づいているためです。 404ページの代わりに空白のページがあります。 Firebugでチェックしたところ、ファイルは404ヘッダーで返されましたが、内容はありません。良くない。
誰でもこの問題を解決しましたか?カスタムHTTPモジュールはここに行く唯一の方法ですか?
別の奇妙な振る舞いとして、未知の拡張子を使用すると、404ページのHTMLをテキストとしてレンダリングします。 を編集します。また、存在しない拡張レスフォルダを入力すると、同じ動作が発生します。うわー、この変な獣は私を悩ませ続けています。
ありがとうございました。
更新
HttpModuleをここに行くための唯一の方法であるように見えます。誰もが完全なコードを知りたいと思うなら、私はこれを働かせています。私はここにそれを掲示するだろうが、SOコードフォーマッタはマングリングしているものです。
web.configファイルのエントリは次のようになります。
<add name="PageNotFoundHttpModule" type="ProjectName.PageNotFoundHttpModule, ProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=fb507da11a891ef3" preCondition="integratedMode" />
はい、私は今考えています。私はこれが唯一の方法だと思う。かなりショッキングな、本当に。 – ScottE
web.configエントリを追加できません - gettin "指定されたアセンブリ名またはコードベースが無効です。" - あなたはHttpModuleを追加する方法についてのブログを知っていますか?ありがとう。 – ScottE
はい、私はGACにvnetソリューションを導入しました - これはデフォルトです。私は自分のソリューションにクラスを追加しました。これをdllに含めるには、何も特別なことはありませんか?また、これは、統合されたパイプラインとしてsystem.webServer> modulesにあります。 – ScottE