IIS・ASP・VBScript

2008年6月23日 (月)

IISで「既定のWebサイト」が[開始]状態に出来ない

既定のWebサイトを開始しようとすると、
「プロセスはファイルにアクセスできません。別プロセスが使用中です。」
エラーが出る。
調べてみたところ、以下のような記述あり。
-------------------------------------------
ログでイベントID 1004、イベントID 15005
は発生していますか?
そうであれば、ポート80番が他のプロセスで使用中の可能性があります。
コマンドプロンプトで
netstat -anb
と入力して、ポート80番(おそらく一番はじめに表示される)を使用しているプロセスが
inetinfoでなければ、そのプロセスを停止してください。
それが不可能であれば、IISの既定のWEBサイトのプロパティでポートを80番以外に設定してみてください。
参照URL
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35294&forum=6&2
-------------------------------------------
今回はポート80をapache.exeが使用中だった。

2007年8月31日 (金)

Microsoft VBScript 実行時エラー エラー '800a0046'

ASPで開発したWebシステムのテスト環境において
ActiveReportとExcelCreater用のDll呼び出し時に
Microsoft VBScript 実行時エラー エラー '800a0046'
が発生するようになった。
WindowsServer2003
IIS 6.0
サーバーアップデートに伴い、全て動作確認済みで実績があったのに
久しぶりに動かすとこの始末だった。
色々調査した結果、セキュリティがらみと思われた。
サーバーにASP.NETのコンポーネントを追加したり、パッチを当てたりした際に
セキュリティの設定が変わった(デフォルトに戻った?)のだろう。
色々試した結果、Dllのファイルのアクセス権でeveryoneをフルコントロールにしたら
 Dllの呼び出しは可能になった。
また、その後、パスのエラーが出た。
ActiveReportおよびExcellのファイルを作成しているディレクトリのセキュリティの
アクセス権でeveryoneを書き込み可にしたら以前のように動くようになった。
 
ここで不思議なのは、IUSR_(サーバー名)に対して同様のアクセス権を与えても
ダメだったこと。
このシステムは設定を変えていないのでIUSR_(サーバー名)のはずなのに?
ISUR_(サーバー名)がそのサーバーだけのユーザーだったから?

2007年7月19日 (木)

FileSystemObjectがUNICODEでエラー

FileSystemObjectでWriteLine実行時に「プロシージャの呼び出し、または引数が不正です。」
というエラーが出たという報告があった(IIS利用Webシステム)。
UNICODEが原因らしい。
いまひとつはっきりしないが、分かったことを回答メールを貼り付ける形でここに残す。
少なくとも環境によって起こることがあるようだ。
--------------------------------------------------------------
いろいろ調査した結果、以下のことが分かりました。
> Ver.1なのか、Ver.2なのかもわかりませんし。
1ページめのエラー情報から(ファイル名).aspの567行目でエラーになって
いることが分かります。
Ver.2では567行目でエラーが起こることはないため、Ver.1だと考えられます。
Ver.1の567行目は、作成したCSVファイルに1行を書き出す処理でした。
(ファイルを作成した後、1行ずつ書き出しています。)
ファイルを作成したり書き出したりするのは、FileSystemObjectという
サーバーに備わったコンポーネントを利用しています。
このFileSystemObjectで行を書き出す処理をする際、データにUNICODEが
含まれていると、「プロシージャの呼び出し、または引数が不正です。」
が起こることがあるようです。
弊社のテスト環境で実行すると上手くいきましたので、サーバーのOSの
更新を最新にすればFileSystemObjectが正しく動くようになると思います。
(どのパッチをあてれば良いかまでは調べがつきませんでした。)
> 「名称」の「~」が「?」に化けるのは、この原因では無いような気がします。
> (これは単純にブラウザのせいかと思いますが。)
変換不可能な文字があると「?」が表示されるようです。
UNICODEで保存された「~」がS-JISに変換できなかったと考えられます。
これもテスト環境で同じデータを表示することができました(添付資料参照)。
上手くいった環境は
IISサーバー OS バージョン :Windows2000 SP4
I.Eのバージョン: 6.0
です。

2005年9月 9日 (金)

IIS6.0 大きいファイルだとアップロードエラー

環境WIndows2003Server IIS6.0
WindowsNTの時は可能だったのにファイルのアップロードでエラーになるようになった。
大きいファイルだとエラーになるようだったので調べた結果、これもIIS6.0の仕様変更と分かる。
 
<参照URL>
 ファイル変更時、IIS要停止

IIS6.0 ファイル表示不可

IIS4.0の時は、クライアント上にそのファイルを表示できるアプリケーションさえあれば

どんな種類のファイルでも表示できていたのだが、IIS6.0ではファイルによって

「ページが見つかりません」になる。

IISの仕様変更に伴うものと判明。

MIMEにファイル拡張子を追加した。

<参照URL>

・IIS6.0での仕様変更とMIMEファイル拡張子追加方法

http://www.grapecity.com/japan/support/powertools_os_win2003_setup.htm

 直接参考になったのはここ。

 マイクロソフトのサイトで明示されていないか探したけど見つからず。

・MIMEについて

http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx#EEAA

 あらかじめ設定されている拡張子の種類についてだが、IIS6.0のものは見つからず

 

2005年8月31日 (水)

IIS6.0 何故かセッションが切れる-2

昨日ワーカープロセスのリサイクルの設定を変更したのに、また起こった。
他の設定も確認すると、
パフォーマンスの「アイドルタイムアウト」が怪しい。
デフォルト値20分で有効になっている。
画面を表示したまま、皆が20分以上使わなかったらワーカープロセスが解放され
セッションも切れるだろう。
 
下記のように設定を変更した(昨日のも含む)。
なお、この客先では専用のIISサーバーがあり開発したシステム用のWebサイトは
一つだけなので、DefaultAppPoolのプロパティをそのまま使用した。
<注意>
アプリケーションプールの設定変更をするとワーカープロセスのリサイクルが行われるらしい。
システム利用中に設定変更するとセッションが切れるので要注意!!!!
 
 
リサイクル
ワーカープロセスのリサイクル(分)ごと はずす
ワーカープロセスのリサイクルを以下の時間に行う 夜中の2時に
他の設定はせず
 
パフォーマンス
アイドルタイムアウト はずす
要求キューの制限 はずす
(この客先では要求数は多くないのでこのままでもよいが)
 
状態
Pingを有効にする 有効のまま
ラピッドフェール保護を有効にする はずす
他の設定はそのまま
 
識別
そのまま
 
参考
 
 

2005年8月30日 (火)

IIS6.0 何故かセッションが切れる

IIS4.0から移行したシステムで、セッション変数がなくなる事象発生。
既定のWebサイトのプロパティで接続のタイムアウトを18000秒(5時間)にしたがダメ。
そもそも以前は何時間ほっておいても大丈夫だったらしい。
Session.timeout=720 (分;=12時間)だったからさもあらん。
 
いろいろ調べた結果、ワーカープロセスのリサイクルの設定時間が原因だったようだ。
 
 参考URL

IIS6.0 CDate関数

ASPのCDate関数の戻り値の形式が変わっていた。

IIS4.0の場合 YY/MM/DD(例:03/01/10)
IIS6.0の場合 YYYY/MM/DD (例:2003/01/10)
※ Response.Writeで実際に書き出して確認

色々調べたが、今のところ詳しい情報は得られていない。