none
開発サーバで動作するが、IISで動作しない RRS feed

  • 質問

  • こんにちは

     

    現在、Visual Studio 2008 で ASP.NET にて、

    企業内のイントラネットサイトの作成を行っております。

    用途としては特定のファイルを本部のサーバーへアップロードするものです。

    そのファイルを開発サーバでテストすると動作するのですが、IISでは動作しなくて困っています。

    アップロードには

    開発/​ASP.NET/​備忘録/​【外部】FlashUploadによる複数ファイルアップロードで紹介されていた

    Multiple File Upload With Progress Bar Using Flash and ASP.NET

    に掲載されているフラッシュファイルを使用しています。

    すべてそのままではないのですが、自分が作成しているASPXファイルに追加するような形で作成していて

    flash自体に変更を加えていません。

    開発サーバーでは問題なくファイルをアップロードできるのですがIIS環境だとFlashの表示、ファイルの参照までは

    うまくいくのですがアップロードを行おうとするとエラーがでてしまいます。

    (このflashファイル特有のエラー画面なので参考にならないと思うのですが

    There has been an I/O Error: Error #2038

    There has been an HTTP Error: status code 404

    と表示されます)

    開発サーバーとIISでの違いをいろいろ探ろうとしているのですが、

     inetmgr(IISマネージャー)をいじっても解決にはいたらず、参っています。

    Multiple File Upload With Progress Bar Using Flash and ASP.NETに設置されている掲示板でも

    同様な症状はみられませんでした。

    (ファイル容量制限を越えたパターンでも表示されるようなんですが私の場合は1KBのファイルでもエラーがでます。)

    この点をチェックすればいいよというヒントがあれば是非教えていただきたいです。

    よろしくお願いいたします。

     

    追記

    さらに疑問点は組み込んだ状態では上記のような状態なのですが、ダウンロードしてきたまっさらな

    ファイルをそのまま使用しようとすると以下の状態になります

    開発サーバー flash表示 OK アップロード OK

    IIS  真っ白画面 flashはもとよりログイン画面(フォーム認証が最初にあります)も表示されない

     

    おそらくIISの設定の方法が悪いと思うのですが。

    よろしくお願いいたします。

    2010年10月22日 16:32

回答

  • 環境(OS, IIS, .NET, VS のバージョンなど)ぐらいは書いておきましょう。

    紹介されているページをざっと見ただけで、深く調べてはいませんが、

    > There has been an HTTP Error: status code 404

    から想像すると、HTTP ハンドラが動いてないのではないですか?

    IIS7 以降の統合パイプラインモードでは web.config の HTTP ハンドラの設
    定方法が違うのですが、その点は対応されているでしょうか?

    紹介されているページの設定方法はクラシックモードまたは IIS6 以前のも
    のです。

    • 回答としてマーク take.umbra 2010年10月23日 19:15
    2010年10月22日 23:19

すべての返信

  • 環境(OS, IIS, .NET, VS のバージョンなど)ぐらいは書いておきましょう。

    紹介されているページをざっと見ただけで、深く調べてはいませんが、

    > There has been an HTTP Error: status code 404

    から想像すると、HTTP ハンドラが動いてないのではないですか?

    IIS7 以降の統合パイプラインモードでは web.config の HTTP ハンドラの設
    定方法が違うのですが、その点は対応されているでしょうか?

    紹介されているページの設定方法はクラシックモードまたは IIS6 以前のも
    のです。

    • 回答としてマーク take.umbra 2010年10月23日 19:15
    2010年10月22日 23:19
  • もう一つありそうな問題を言うのを忘れていました。

    アップロードするフォルダに対する IIS のワーカープロセスの
    アクセス権は問題ないですか?

    そんな初歩的なミスはしないということでしたら失礼しました。

    よく見てみると、エラーメッセージは HTTP ハンドラが返して
    いるような感じがしますので、こちらの方が怪しそうな気がし
    ましたので。

    2010年10月23日 1:16
  • ご返答ありがとうございます。

    また環境について失礼いたしました。



    OS Windows7 professional

    IIS 7.5

    .net framework 3.5 SP1

    VS 2008


    >IIS7 以降の統合パイプラインモードでは web.config の HTTP ハンドラの設
    >定方法が違うのですが、その点は対応されているでしょうか?

    >紹介されているページの設定方法はクラシックモードまたは IIS6 以前のも
    >のです。

    統合パイプラインモードなるものをはじめて伺いました。

    すこしネットで確認したところinetmgrのアプリケーションプールで設定できるとのことでしたので

    統合パイプラインモードのみ停止させたところ、flashの表示さえできなくなりました。

    (確認したところクラシックも統合も稼動しているのが???なのですが)

    もしクラシックのみで稼動するならそれでもよかったのですがどうもだめみたいです。

    HTTP ハンドラの設定方法についても???な状態なのでとりあえずネットを巡回してまた調べてみます。

    (Multiple File Upload With Progress Bar Using Flash and ASP.NETに設置されている掲示板でもいくつか記載がありましたが

    まったく飲み込めなくて。。。)

    またわからないことがあれば、質問させてください。


    >アップロードするフォルダに対する IIS のワーカープロセスの

    >アクセス権は問題ないですか?

    こちらに関しては大丈夫と思います。

    IUSR,IIS_IUSRS,NETWORK SERVICE,IIS APPPOOL\DefaultAppPool

    すべて権限を与えたのですが、変化ありませんでした。

    実質はIIS APPPOOL\DefaultAppPoolのみでいいと思うのですが、念のため追加してみました。

    現在はASP.netで単体のファイルアップロードを実現できているので

    このあたりの確認は以前行っていました。

    (要望があって複数ファイルの同時アップロードをとのことで今回のflashを用いた

    アップロードを実装したいのですが。。。)

    よろしくお願いします。
    2010年10月23日 16:46
  • >IIS7 以降の統合パイプラインモードでは web.config の HTTP ハンドラの設
    >定方法が違うのですが、その点は対応されているでしょうか?

    >紹介されているページの設定方法はクラシックモードまたは IIS6 以前のも
    >のです。

    今、ネットを探ってきてようやくHTTP ハンドラの扱いがすこし理解できました。
    アプリケーションプールの設定は完全に勘違いしており
    統合パイプラインモードからクラシックモードへ変更したところ
    無事アップロードができました!!

    参照元

    この理解でいくと本番系のサーバーがIIS6なら変更なしで正常動作、

    IIS7ならクラシックモードにする、またはweb.configを書き換えれば動作することになりそうです。

    (今後のために書き換え方も勉強しようとは思いますが)

    環境の説明なしにヒントを与えてくれたSurferOnWwwさんに感謝ですm(_ _)m

     

    某サイトより WindowsOS ごとの IIS のバージョン。備忘録に。

     

    Windows2000      | IIS5.0
    WindowsXP(32bit)   | IIS5.1
    WindowsXP(64bit)   | IIS6.0
    WindowsServer2003   | IIS6.0
    WindowsVista     | IIS7.0
    WindowsServer2008   | IIS7.0
    WindowsServer2008(R2) | IIS7.5
    Windows7       | IIS7.5

     

    2010年10月23日 19:14