- PR -

2003サーバにおけるワーカースレッド増加について

1
投稿者投稿内容
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-02-10 16:55
いつも勉強させて頂いております。

現在、2000サーバ上で動いているASP.NETで作成したWebアプリケーションを
2003サーバで動かそうとしたところ、ワーカースレッド数を「1」に設定した
状態では問題なく動くのですが、ワーカースレッド数を「4」に設定すると
エラーが発生しました。

エラー内容は下記になります。
当初ViewStateのエラーが発生しておりましたが、EnableViewState="false"等の
設定をしたところ下記のようなエラー内容に変わりました。

このようなエラーを回避する方法ご存知の方いらっしゃいましたら、
ご教授お願いします。

よろしくお願いします。

_______________________________________

データを検証できません。
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Web.HttpException: データを検証できません。

ソース エラー:

現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。

スタック トレース:


[HttpException (0x80004005): データを検証できません。]
System.Web.Configuration.MachineKey.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +196
System.Web.UI.LosFormatter.Deserialize(String input) +60

[HttpException (0x80004005): Authentication of viewstate failed. 1) If this is a cluster, edit <machineKey> configuration so all servers use the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 2) Viewstate can only be posted back to the same page. 3) The viewstate for this page might be corrupted.]
System.Web.UI.LosFormatter.Deserialize(String input) +118
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +102

_______________________________________




ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2005-02-10 18:25
アプリケーションプールの最大ワーカープロセス数ですよね?
ViewStateを復元するときに失敗しているようですね。ワーカープロセスが違ったらAutoGenerateはできないのかな?

machineKeyのvalidationKeyを明示的に指定してみるとどうなります?
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-02-10 20:47
ya様ご返答ありがとうございます。

やはりmachineKeyを設定した方が良いようですね。

自分でも調べた結果Webconfigの
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="true"
timeout="0"
/>

で、InProcでは複数のワーカースレッドには対応できないところまで
解りましたので、ひょっとしたらここら辺の設定でセッション情報を
使用しないような設定にできないものかと思いました。

現在のWebアプリはセッション情報を使用していないので、その方が
ありがたいのですが・・・
cookieless="true"
にしてもだめでした。

そこら辺のこと知ってる方いらっしゃいましたらご教授ください。
よろしくお願いします。


ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2005-02-10 22:46
ViewStateもSessionStateを使わないアプリでともに使用させなければmachineKeyをいじらなくてもいいかもしれないということですか。
sessionStateに関しては

<sessionState mode="Off" />

でどうでしょうか。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2005-02-14 15:12
ya様ご返答ありがとうございます。

引用:

yaさんの書き込み (2005-02-10 22:46) より:
sessionStateに関しては
<sessionState mode="Off" />
でどうでしょうか。



上記設定でも理由は解りませんがダメでしたので、
machine.configにmachineKeyに計算したhash値を
設定し、動作を確認しました。
やはりこの方法しかないようですね。
色々とご教授ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)