2009-03-26 8 views
0

私はURL Rewriter.NETを使用しています(これはURL Rewriting.NETと比較して、たくさん好きです - もっとうまくいくようですが、間違ってはいない、私はURL書き換えが好きです.NET。しかし、私がツールの知っていることを考えれば、それは必要性を満たすようには見えなかった)。私はdefault-documentsノードを使用してサイトのデフォルトドキュメントを再定義しようとしています。私はリライターノードに追加しようとしましたが、私は、web.configファイルのエラーURL Rewriter.NET web.configノードの問題

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: The element 'default-documents' is not allowed. 

Source Error: 


Line 187: 
Line 188: <rewriter> 
Line 189:  <default-documents> 
Line 190:   <document>default.aspx</document> 
Line 191:   <document>index.aspx</document> 

は、誰もが過去にこのツールを使用しています取得し、誰もがどここのノード(または適切な使用法を)置くかわかりませんか?

EDIT:

私は以下の提案を試してみましたが、全く正しい動作していないようでした。ここで私は前にURLリライタ使用し、実際にも、既定のドキュメントを設定するといくつかの問題を持っていた(これは、設定ファイルの内容だけである)

<rewriter> 
     <rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$" to="$1" processing="stop" /> 
     <default-documents> 
      <document>default.aspx</document> 
      <document>index.aspx</document> 
     </default-documents> 
</rewriter> 
+0

"正しく動作していないようです"とは、デフォルト文書を使用していないということですか?もしそうなら、以下の私の編集をチェックしてください。 – Moose

答えて

0

私はこの問題の解決策は私がウェブサイトで使用している.NETのバージョンだと思います。私は2.0ランタイムを使用しており、DLLは1.1ランタイム用にビルドされています。 2.0ランタイムはまだRC版(2007年中旬以降)であるため、このWebサイトでは使用しません。代わりに、URL Rewriting.NETを使用して同じ目標を達成する方法を理解しました。

私は、次のルールを追加しました:

<add name="Redirect54" virtualUrl="~/content/myvirtualpage.aspx" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="~/content/mydestinationpage.aspx?id=9" 
    redirect="None" 
    ignoreCase="true" /> 

これは、代わりにリライトのmyvirtualpage.aspxにHTTP 200応答を引き起こします。最終的な目標は、mydestinationpage.aspx?id = 9に301をmyvirtualpage.aspxに設定し、200のHTTP応答でmyvirtualpage.aspxを処理することです。しかし、それは少しオフです。

+0

実際には、2.0バージョンも使用していたと思いますが、前にも述べたように、いくつかの厄介なバグがありましたが、最終的に克服できました。 – SirDemon

1

私の余分な設定ファイルには何かということです。しかし、最終的には、urlrewriterの設定をweb.configとは異なる設定ファイルに移動することで、それを(そして他の軽度の煩わしさも)取り除くことができました。

<rewriter configSource="urlrewriter.config"/> 

はあなたにも正しく動作するURLリライタのためにIISのデフォルトドキュメントを無効にする必要があることを忘れないでください。それはまた、厄介な問題の束を引き起こしました。

EDIT:

web.configファイル内のコンフィグセクションに次の行を追加することを忘れないでください
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/> 

・ホープ、このことができます。

+0

私はこれをショット、おかげで与えるよ! – CodeMonkey1313

+0

別の設定ファイルに追加しても問題は解決されませんでした。 – CodeMonkey1313

1

このコードは、私の作品:

<configSections> 
     <section name="rewriter" 
       requirePermission="false" 
       type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" 
     /> 
    </configSections> 

    <rewriter> 
     <default-documents> 
      <document>index.aspx</document> 
     </default-documents> 
    </rewriter> 

編集:あなたは、ワイルドカードアプリケーションマップを追加したところ、あなたもチェックしない「というファイルが存在することを確認してください」ことを確認してください。これをしないと、デフォルトのドキュメントは何もしません。

別の編集:「ファイルが存在する」チェックボックスを示すインストール手順が見つかりました。ステップ8を参照してくださいhere

+0

あなたとSirDemonのレスポンスに記載されているのと同じconfigSectionsがあります。 httpModulesノードにその行があります。私は正常に動作する定期的な書き換えノードを持っています。それは機能していないデフォルトドキュメントノードだけです。 – CodeMonkey1313

+0

私の編集をチェックしてください。ワイルドカードアプリケーションマップを追加した場所で、「ファイルが存在することを確認する」チェックボックスもオフにしましたか?それ以外の場合は、既定のドキュメントを実行しません。 – Moose

+0

はい、私はIISの設定を確認しました。それは問題を解決していないようだ。私はそのランタイムが使用されていると思っています。 – CodeMonkey1313