タイトル : Re^9: MSXML2.XMLHTTP60 をログオフ状態で使用 投稿日 : 2015/07/16(Thu) 17:33 投稿者 : 魔界の仮面弁士
MMC の証明書スナップインで、「ローカル アカウント」で保持されている証明書と、 「コンピュータ アカウント」あるいは「(スケジューラーの)サービス アカウント」の証明書を 比較してみて下さい。目的のサイトの証明書のチェーンが、ローカル アカウントの場合にのみ 信頼済みルートに繋がっていて、他のアカウントでは繋がっていないような状況であれば、 今回の問題が発生するかもしれません。 それと、スケジューラー上での無人実行を必要とするのであれば、 プロジェクトのプロパティの[対話型インターフェイスの抑制]を on にしておくことをお奨めします。(App.UnattendedApp = True の状態) これを設定しておけば、トラップされていないエラーが発生した場合でも、 メッセージボックスでの表示ではなく、イベントログへの記録に置き換わります。 (無人実行であるがゆえに、Form を使うことはできなくなります) > 「信頼されていないものを無視して通信するかを選ぶことになるでしょう。」 > 単純にこれを実現したいのですが、何かヒントはないでしょうか スケジューラー上での実行は試していないのですが、当方では setOption 自体は動作しているように見えます。 同じエラーを発生させるようなテスト環境が無いので、 具体的なところはお手伝いできそうにありませんが…。 Option Explicit Private Sub Command1_Click() Dim url As String '[80072F05] 証明書の日付は無効か有効期限が切れています 'チェーン上のクロスルート証明書は正しく配置されているが '肝心のサーバー証明書が期限切れを迎えているパターン url = "https://www.bugin.cns-jp.com/" url = "https://www.hokuetsu.cns-jp.com/" '[80072F0D] この証明機関は、無効か正しくありません '有効期限が過ぎているのみならず、 '別サイトである www.kotonet.com 向けの証明書が 'kotonet.com で使われており、証明にならないパターン url = "https://kotonet.com/" '[80072F0D] この証明機関は、無効か正しくありません '証明書自体は有効期限内ではあるのだが、 '別サイトである www.sdc-sample.net 向けの証明書が 'www.hokuetsu.cns-jp.com で使われている上に、 'チェーン上にルート証明書を検出できないパターン url = "https://www.musashinobank.co.jp/" '[80072F0D] この証明機関は、無効か正しくありません '証明書そのものは正しい内容であるが、 'ルート証明書がサーバー上に配置されている状況で、かつ、 'クライアントの信頼済みストアには存在していないため '証明書を信頼することができないパターン url = "https://www.cii.u-fukui.ac.jp/" Dim o As Object Set o = CreateObject("MSXML2.ServerXMLHTTP.6.0") o.open "HEAD", url, False If Check1.Value = vbChecked Then o.setOption 2&, 13056& End If o.send MsgBox o.getAllResponseHeaders() End Sub > xmlhttpの扱いについてexeとvbpは何か違うのでしょうか 思いつく範囲では: ・作成した EXE あるいは VB6.EXE のプロパティに、互換モードを指定してはいないか? ・コンパイルオプションは P-Code か? それともネイティブか? (開発環境は P-Code 相当) ・実行時のカレントディレクトリは同一になっているか? (依存コンポーネントの相対パスの問題) |