題名の通り、Request.BinaryRead()のエラーについての相談です。
運用しているWindows2003サーバー + IIS6にて、不定期に以下のエラーが発生します。
「予期しないエラーです。関数が | を返しました。」
上記について調べたところ、ここ(http://www.b21soft.co.jp/basp21/basp21pfaq.html#aspreqbinaryread)に70MB以上のファイルはアップロード出来ないとのことでした。
ですが、当方のシステムでは最大で1000KBまでのファイルしか許可しておりません。
また、ここ(http://www.mamenorin.com/xoops/modules/newbb /viewtopic.php?topic_id=67&forum=70&post_id=68)にある通り、 MetaBase.xmlのAspMaxRequestEntityAllowedの値を確認したところ、「3072000」となっておりました。
この場合、3MBを超えた場合に発生するエラーは「Request オブジェクト エラー 'ASP 0104 : 80004005' 操作は許可されません」のはずであり、「予期しないエラーです。関数が | を返しました。」が発生するのはありえないのではないかと思っています。
また、このエラーログの直後の処理は停止されることなく、別サーバーへのファイルアップも含めて正常に完了されており、実際にサーバーへファイルのアップも完了出来ています。
VBのバグでこのようなログが出力されているのでしょうか?
ネットで調査した限り、上記の2URLに該当する情報しか見当たらず困っています。
よろしくお願いします。
正直、原因がさっぱり思いつきません…。
> BASP21 Request.BinaryRead()のエラーについて
Request オブジェクトは IIS が提供するオブジェクトであって、
BASP21 とは無関係のハズですが…。
エラーが発生するのは、BinaryRead の呼び出し時なのでしょうか。
それとも、そこで得た Byte 配列を BASP21 に渡す際なのでしょうか。
> 不定期に以下のエラーが発生します。
エラーが発生する場合、Request.BinaryRead に渡している値は何ですか?
(異常な Request.TotalBytes 値が渡された場合、それを弾いていますか?)
また、その際にイベントログ等に通信障害は記録されていませんか?
デバッガ等を併用して、何か追加情報を得られませんか?
http://keicode.com/debug/
>魔界の仮面弁士さん
コメントどうもありがとうございます。
>> BASP21 Request.BinaryRead()のエラーについて
>Request オブジェクトは IIS が提供するオブジェクトであって、
>BASP21 とは無関係のハズですが…。
スミマセン…僕も記入したあと気づいたのですが、BASP21とは関係が有りませんでした…
>> 不定期に以下のエラーが発生します。
>エラーが発生する場合、Request.BinaryRead に渡している値は何ですか?
>(異常な Request.TotalBytes 値が渡された場合、それを弾いていますか?)
BinaryReadに渡している値はRequest.TotalBytesで取得したバイト数を直接渡しています。
異常値の検査などは一切していませんでした。
>また、その際にイベントログ等に通信障害は記録されていませんか?
イベントログにはこのエラーメッセージのみが記録されており、以降のファイルアップ処理内で出力しているログが続けて記録されています。
>デバッガ等を併用して、何か追加情報を得られませんか?
>http://keicode.com/debug/
こういったものを利用していませんでしたので参考にします。
現状原因が見えませんので、
>(異常な Request.TotalBytes 値が渡された場合、それを弾いていますか?)
以上値をチェックするコードを追記し様子を見るしかないですかね…
ツイート | ![]() |