タイトル | : Re^4: Com Surrogate |
記事No | : 16569 |
投稿日 | : 2020/05/13(Wed) 19:19 |
投稿者 | : でふぁいあんと |
重ね重ねありがとうございます。
> > ComSurrogateの発生は、hogehoge.exe内の > > objXML.open "GET", URL, False で発生しています > 「COM インスタンスを生成した時」や「send メソッドを呼び出した時」ではなく、 > 「open メソッドを呼び出した時」に発生しているのですか? と > インスタンスはどうやって生成していますか? > New なのか CreateObject なのか。 を、まとめてご説明いたしますと
実はNewの扱いが苦手でおかしければご指摘いただきたいのですが、 hogehoge内のmainで。
dim objXML as new msxml2.xmlhttp60 から ret = F1(objxml,,) -- private function F1(objxml as object,,, log(ミリ秒) Set objXML = New MSXML2.XMLHTTP60 log(ミリ秒) objXML.open "GET" logミリ秒---A objXML.send logミリ秒 --と実行しておりまして、new の所にもlogをとれるようにしました。
で別のプログラムでComSurrogateを探して CreationDateを記録すると、Aのタイミングです。 ちなみに以前は private function F1(objxml as msxml2.xmlhttp60,,, objXML.open "GET" と直接操作していましたが、状況は同じです。
> また、exe を終了させずに上記を複数回呼び出した場合も、 > COM Surrogate なプロセスが増えていくのでしょうか? はい、hogehogeのxml.open直後に msgbox(" ")で止めるようにして 親から呼ぶと、デスクトップから呼んだときは発生内 タスクスケジューラーから実行すると、実行した数だけComSurrogate発生します
> > どうやら、タスクスケジューラからプログラムAを実行すると発生するようです。 > > 私も把握できているわけでは無いのですが、思い当たるのは DCOM の権限がらみです。 > > > 「管理者:コマンド プロンプト」 →「dcomcnfg.exe /32」 > → [コンソール ルート] → [コンポーネント サービス] > → [コンピューター] → [マイコンピューター] → [DCOMの構成] > → [WinInetCacheServer] → コンテキストメニュー[プロパティ] > → [セキュリティ]タブ → [起動とアクティブ化のアクセス許可] > > あたりでどうでしょう。 > これ、なんとなく当たりかなと思ったのですが、 「起動とアクティブ化のアクセス許可」の「編集」が選択できない状態です ログオンユーザーは管理者、 コマンドプロンプトは間違いなく管理者モード 「dcomの構成」の上位の「マイコンピューター」-「プロパティ」-「com セキュリティ」に あえてログオンユーザーを追加してもだめでした。
|