AJAXToolkitのAjaxFileUploadが、開発環境ではうまくいっていたのに動かなかった。
アップロードが"UploadComplete"になる前にNGになる…。
以下、Web.ConfigやIISに対して行ったまとめ。
-----------------------------------------------------------------
①開発時からWen.Configに以下の様なイベントハンドラを追加。
<system.web>
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
</handlers>
</system.webServer>
これがないと開発の段階ですらどうあがいてもNG。
http://stackoverflow.com/questions/17051845/ajaxfileupload-error
②その後サーバに移管した時にうまくいかず…。
IIS7以上はこっちというからsystem.webserver内をこっちの書き方にした
<validation validateintegratedmodeconfiguration="false" />
<handlers>
<add name="AjaxFileUploadHandler" verb="*">
path="AjaxFileUploadHandler.axd"
type="AjaxControlToolkit.AjaxFileUploadHandler,
AjaxControlToolkit"/>
</add></handlers>
役にたったか否かは不明…。
https://www.codeproject.com/Questions/773110/AjaxFileUpload-server-events-not-firing
③とりあえず仮想ディレクトリに権限与えまくった
このサイトよかった。
https://creativeweb.jp/tips/iis_acl/
④それでもうまくいかず。
アプリケーションプールが統合モードならこう書けとあったから
上記の書き方に、
preCondition="integratedMode" を追加した。
(「
preCondition="integratedMode"」と書いてあるトコ参照)
http://stackoverflow.com/questions/22706303/ajaxfileupload-not-working-in-iis-7-5-and-later
⑤それでもうまくいかず。
よくわかんなかったが以下のサイトを見てASPXのコードのトコで
UseAbsoluteHandlerPath="false" を加えた
アドレスがなんたららしいけど… 関係なさそうに見えたのにこれだったかも
https://github.com/DevExpress/AjaxControlToolkit/issues/43
-----------------------------------------------------------------
以上でうまくいった!