プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。勉強でVS2005を使用して、c#を使ってwebサイトを作っています。
アップロードして完成だーと思った矢先にエラーが出てしまいました・・・

↓エラーが以下のように検出されました。
viewstate MAC の検証フィールドです。このアプリケーションが Web Farm またはクラスタによってホストされている場合、<machineKey> 構成が同一の validationKey および検証アルゴリズムを指定していることを確認してください。AutoGenerate をクラスタで使用することはできません。

これを修正するために、

ttp://snowaqua.spaces.live.com/blog/cns!C6295158C662271!182.entry
上記サイトを見て、
<machineKey validationKey="値" decryptionKey="値" validation="SHA1"/>
をweb.configに追加したのですが、またエラーが出てきました。

解析エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。

とエラーが検出されました。
localhostでは普通に表示されるのですが、レンタルサーバにアップしますと、
上記のエラーが検出される形でした。
IIS:5.1で、WINDOWS XPを使用しています。
何か小さな間違いからきてるのでしょうか?
行き詰ってしまっている状況です・・・何かここが違うぞ!とか、ここが怪しいぞ!?
と、いう部分があれば至急教えていただければ幸いです。
よろしくお願いします。

A 回答 (2件)

><machineKey validationKey="値" decryptionKey="値" validation="SHA1"/> は記入は不要になるのでしょうか?


どうしても、ここでエラーが発生してしまいます・・・

Web.config に上記を設定してもエラーになります。
記入は不要なんではなく、エラーになるから書けないというべきです。

>%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.configを修正するしかないのかなとは思いますが、
>設定を「MachineToApplication」以外にする方法とはどういうものなのでしょうか?教えていただければ幸いです。

MSDNを見てもらえればわかるとおり、「Everywhere」をmachine.configに設定すると回避できるかもしれないという意味です。
ただし、レンタルサーバーの管理者しかmachine.configは触れませんので、ここでいろいろと説明しても無理ですね。

それから、この件をGoogleなどで調べてみると、同様の事例があるみたいですよ。
それらは参照してますか?

MSDNフォーラム
http://forums.microsoft.com/MSDN-JA/ShowPost.asp …

わんくま掲示板
http://bbs.wankuma.com/index.cgi?mode=al2&namber …

MSDNフォーラムとわんくま掲示板を熟読頂き、それでも同様のエラーが発生しているのであれば、またご質問頂けますか?
また、Login.aspx というファイル名がよろしくない(バグですけどね)だとか、結構、くだらないところでエラーになっていることがあるので、またご相談頂ければと思います。

参考URL:http://forums.microsoft.com/MSDN-JA/ShowPost.asp …
    • good
    • 0

Webサーバーのmachine.configファイルに、


allowDefinition='MachineToApplication'  の記述があると、
いくらWeb.config に、
<machineKey validationKey="値" decryptionKey="値" validation="SHA1"/>
と書いてもエラーになります。

このエラーを回避するには、Webサーバーにある
%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
の設定を「MachineToApplication」以外にするしか方法がありません。

今回レンタルサーバーということなので、恐らくそれも無理な話ですね。
まずは、そこを理解してください。

そして、本題の解決方法なんですが、

Web.config に、
<pages enableViewStateMAC="true" ... />
or
<pages enableViewStateMAC="false" ... />
を書くか、

もしくは、
各aspxファイルの@Pageディレクティブに、「EnableViewStateMac」を書くことで対応できませんか?こんな感じで。

<%@Page EnableViewStateMac="true" ... %>

<%@Page EnableViewStateMac="false" ... %>

EnableViewStateMacの意味については、
http://msdn.microsoft.com/ja-jp/library/system.w …
をご参照下さい。

とりあえずこの問題に関するKBがマイクロソフトのサイトに
掲載されていますが、どうやらレンタルサーバー側が
いずれにしてもこの問題を解決する修正プログラムをインストールする必要がありそうですね。
http://support.microsoft.com/kb/832183/ja

ひとまず、EnableViewStateMacプロパティの設定を試して頂き、
それでもエラーが出るようであれば、レンタルサーバー会社に
http://support.microsoft.com/kb/832183/ja
の内容を見て頂き、修正プログラムをインストールして頂くよう
薦めてみることをお勧めします。

この回答への補足

連絡が遅くなって申し訳ありません。
各aspxファイルにEnableViewStateMac="true"追加してみたのですが、エラーは治りませんでした・・・
<machineKey validationKey="値" decryptionKey="値" validation="SHA1"/> は記入は不要になるのでしょうか?
どうしても、ここでエラーが発生してしまいます・・・

%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.configを修正するしかないのかなとは思いますが、
設定を「MachineToApplication」以外にする方法とはどういうものなのでしょうか?教えていただければ幸いです。

補足日時:2008/08/12 10:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!