IIS での ActiveX.exe

次の様なコードで,環境により?サーバの exe が終了されないことがある.
  dim oHV
  set oHV = Server.CreateObject(“AsHVXxx.Application”)
  Response.Write “AsHV….App ” & oHV.GetVersion & “<br>” & vbCrLf
  set oHV = Nothing
AsHVxx.exe   ~.Application のみ
  Win XP , 7 とも正しく終了する.
PAtoXx.exe
  Win XP 環境で,デバッグ版 exe は OK .
  Win 7 では正しく終了している.


2015/02/19
PAtoXx.exe の OnInitDialog で,環境設定用のダイアログが表示されて止まってしまっていた.
で,単純にメッセージボックスなどを表示しているならばすぐわかったはずだが,…
  普通の exe としての起動の場合は,ダイアログは表示されない.
  ASP のオートメーションとして起動された場合は,見えないがダイアログが表示されて止まっている.
ダイアログが表示される条件は,設定値が正しいフォルダをさしていない場合.
  c:\ProgramData\… の様にローカルをさしている場合は,どちらの起動でもダイアログが表示されないで処理を継続.
  \\T54W7U64\Documents\… の場合,当然であるが単純起動の exe では OK でダイアログは表示されない.
  これが ASP から起動されると _taccess で正しく判断できず,ダイアログが表示されて止まっている.
CFile::GetStatus でもうまく判断できない?


2015/02/24
MFC クラスウィザードからの「クラスの新規作成」で 「CCmdTarget」 「タイプ ID で作成」したものも終了されない?
利用している所は次の様な感じ.
  set oM_P_ = Server.CreateObject(“AsXxxxX.Path”)
デフォルトで作成されている ~.Application を利用することで終了できる.
  set oM_S_ = Server.CreateObject(“AsXxxxx.Application”)
この動作は,vbs でも同様に確認できる.


2015/03/05
AsXxxS.exe を修正していて Win 7 環境で,
  Server オブジェクト エラー ‘ASP 0177 : 80080005’
  Server.CreateObject に失敗しました
  /Test/Test_3rd/D_Path_1.asp, 行 7
  80080005
XP 環境では OK .
設定関連の漏れがあると思うが,それまで通っていたのでコードを変更.
  以下が新しく追加した部分
   {
     #if defined _UNICODE
       folder = ::FolderAddLastSP(folder) + _T(“WC”) ;
     #elif defined _MBCS
       folder = ::FolderAddLastSP(folder) + _T(“MB”) ;
     #endif
   // ::CreateFolder(folder) ;
     if (::FolderIsNothing(folder)) {
       if (::CreateDirectory(folder,NULL)) { folder = folder+_T(“\\”) ; }
       }
     }
  最初 CreateFolder としていた所を,CreateDirectory に変更することで対応.
この関数は,デバッグ情報をファイルに出力しているが,Win 7 環境ではファイルが生成されてない.


%Temp% (c:\Windows\Temp) 以下に AsImgCnv….\EMF などのフォルダを作成して,生成した emf を保持している.
綺麗な状態に戻そうとして,EMF フォルダを削除して実行すると,
   エラー ‘80010105’
  /Test/Test_2nd/CallAS/E/SelectPage.asp, 行 148
AsImgConv… フォルダのアクセス権を変更してしまった事が原因か?
どの様に設定すべきかわからず,AsImgCnv… フォルダをエクスプローラで削除して対応.


もう一回,うまく行っている状態で EMF フォルダを削除.
どうも設定ではなくコードが悪いみたいで,影響していそうな所を見てみると,
  CacheFile::GetFolder で ::CreateFolder を呼んでいる.
::CreateFolder を MFC を使用していない ::Folder_Create に置換えてみた.
  停止(’ASP 0177 : 80080005’)することはなくなったが,まだ何かありそう.
  EMF のフォルダが生成されない.


2015/03/10
結局,%Temp% は利用しない様に変更した.
どういう条件かわからないが,c:\Windows\Temp\DbgDump\ にはデバッグ情報が正しく出力されてなかった.
(Win XP では意図した動作だったと思う)


2015/03/30
%Temp% でなく Public\Documents\ 以下にしたが,それだけでは完全ではなさそう.
アクセス権の関係と思うが,パブリックフォルダの共有設定が必要?

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください