3

私はこれをウェブで検索しましたが、何も見つかりませんでした (リモートで関連する投稿が 1 つありました)。

IIS 6 には複数の ASP.NET アプリがあり、各アプリに専用のパスを持つフォーム認証を使用しています。パスは大文字と小文字が区別されるため、URL のパス セクションと正確に一致する必要があります。ただし、IIS 6 メタベースの AppRoot (または IIS UI の開始点) の大文字と小文字が正しくないため、以前に URL がサーバー上で解決され、正しくないケースでクライアントに送信されると、クッパはサーバーにフォーム Cookie を送信しません。

例:
アプリ URL = 「https://Test.net/Application1
Cookie パス= /Application1
メタベース AppRoot = /LM/W3SVC/ 1393818691 /ROOT/APPLICATIONPATH1
解決済み URL = 「https://Test.net/APPLICATIONPATH1

根本的な原因...
特定のケースで手動でテスト サーバーに仮想ディレクトリを作成します (各アプリケーションのパスに一致します)。次に、UI を使用して仮想ディレクトリを XML ファイルにエクスポートし、それを別のサーバー (たとえば、運用サーバー) にインポートします。この時点で、IIS はメタベースの AppRoot 要素を大文字にすることを決定します。

誰でもこれに光を当てることができますか?認識していない IIS の設定はありますか? インポート後にメタベースを手動で編集しないようにしています。それはバグですか?

4

2 に答える 2

1

代わりに、MSBuild の SDC タスク ライブラリを使用して IIS サイトを設定しようとしましたか?

CodePlex サイト

使い方は簡単で、展開を完全に自動化できます。

それ以外の場合は、Metabase.xml を手動で編集することで簡単に修正できます。

Windows\system32\inetsrv\Metabase.xml

以前にこの問題を経験したことがありますが、xml をインポートするときに回避策が見つかりませんでした。

于 2010-04-23T14:54:02.257 に答える
0

私はそれを解決する別の方法を見つけました...

アプリケーションのプロパティで、アプリケーションを削除し、IIS を再起動して、アプリケーションを再度追加しました。再起動により、ディスク内のメタベースが強制的に更新され、間違ったエントリが削除されます。再起動しない場合、メタベースの入り口は大文字のままです。新しいアプリケーションを作成した後、正しい大文字と小文字でメタベースに追加され、問題は解決されます。

やるべきことが増えるかもしれませんが、メタベースを直接変更するより安全です!

于 2011-05-30T14:52:01.537 に答える