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\ 以下にしたが,それだけでは完全ではなさそう.
アクセス権の関係と思うが,パブリックフォルダの共有設定が必要?