従来の ASP サイト用の VB6 バックエンドがあります。その VB は、MSXML2.XMLHTTP を使用して、同じサーバー上の Web サービスを呼び出します。これは、1 つを除くすべてのサーバーで機能します。匿名ログインを受け入れるように Web サービス サイトを設定すると機能しますが、統合セキュリティのみを強制すると、MSXML が Access Denied エラーを返します。
ここの例のコードを使用しています。
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.loadXML XmlBody
' Open the webservice
objXmlHttp.Open "POST", AsmxUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl
' Send XML command
objXmlHttp.send objDom.xml
編集: AnthonyWJones のアドバイスに従って、チェックリストを確認しましたが、まだ機能していません。Fiddler を使用すると、401 応答を含む単一の要求が表示されます。認証タブには以下が表示されます。
No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM
しかし、私は奇妙な行動に気づきました。リモートデスクトップにログインしているユーザーの資格情報を使用して Web サイトを呼び出すと、機能します。交渉、挑戦、そして 200 を取得すると、うまくいきます。ユーザーがリモートデスクトップ経由でログオンしているときにこれが機能するのに、それ以外の場合は機能しない理由はありますか?