【问题标题】:msxml3.dll Access Deniedmsxml3.dll 访问被拒绝
【发布时间】:2013-07-01 09:42:48
【问题描述】:

我有以下代码:

Function filejson(json) 
  Dim objStream, strData 
  Set objStream = CreateObject("ADODB.Stream") 
  objStream.CharSet = "utf-8" 
  objStream.Open 
  objStream.LoadFromFile(json) 
  strData = objStream.ReadText() 
  filejson = strData 
End Function 
Function http2json(url) 
  Set http = CreateObject("Microsoft.XmlHttp") 
  http.open "GET", url, FALSE
  http.send ""                                   '<------- Line 13
  http2json=http.responseText 
End Function 
Function str2json(json,value) 
  Set scriptControl = CreateObject("MSScriptControl.ScriptControl") 
  scriptControl.Language = "JScript" 
  scriptControl.AddCode("x="& json & ";") 
  str2json= scriptControl.Eval( "x"& value ) 
End Function 
Function get_json_from_file(json,value) 
  get_json_from_file=str2json(filejson(json),value) 
End Function 
Function get_json_from_http(url,value) 
  get_json_from_http=str2json(http2json(url),value) 
End Function 
Function save_json_from_http(url,loc) 
  Set fso = CreateObject("Scripting.FileSystemObject") 
  fullpath = fso.GetAbsolutePathName(loc) 
  Dim objStream, strData 
  Set objStream = CreateObject("ADODB.Stream") 
  objStream.CharSet = "utf-8" 
  objStream.Open 
  objStream.WriteText http2json(url) 
  objStream.SaveToFile fullpath, 2 
  save_json_from_http=fullpath 
End Function
Wscript.Echo save_json_from_http("http://api.themoviedb.org/3/authentication/session/new?api_key=#####some_api_key_example#####&request_token=#####some_default_request_token######&_ctime_json_=1372670635.164760555","tmdb\temp\_tmdb_sock_w.164519518.2109")

当我运行此代码时,我收到以下错误。

如果我删除&amp;request_token=#####some_default_request_token######,它就可以正常工作。

我也试过这个:我再次添加了request_token,我只是在其中输入了一个随机字符,例如rexfuest_token,奇怪的是它起作用了。 msxml3.dll 中似乎有错误的解析。带有 request_token 字。

想法?

【问题讨论】:

    标签: vbscript msxml3


    【解决方案1】:

    此问题可能与 Windows 中的安全问题有关。修复它的最佳方法是将Microsoft.XmlHttp/MSXML2.XMLHTTP 替换为MSXML2.ServerXMLHTTP

    我看到这个话题已经有将近 2 年的历史了,话题发起者很可能已经解决了问题。几个小时前我遇到了同样的问题,谷歌为我提供了几个链接。其中有一些:

    1. https://social.msdn.microsoft.com/Forums/en-US/1abda1ce-e23c-4d0e-bccd-a323aa7f2ea5/access-is-denied-while-using-microsoftxmlhttp-to-get-a-url-link-in-vbscript-help?forum=xmlandnetfx
    2. https://support.webafrica.co.za/index.php?/Knowledgebase/Article/View/615/41/msxml3dll-error-80070005-access-is-denied---loading-xml-file
    3. http://www.experts-exchange.com/Programming/Languages/Scripting/ASP/Q_27305017.html

    【讨论】:

    • 非常感谢您的回答。我试图使用 Microsoft.XmlHttp/MSXML2.XMLHTTP 从 VFP 使用 REST 服务。 POST 和 DELETE 工作正常,但 PUT 不行;使用 MSXML2.ServerXMLHTTP 是解决方案,它现在就像一个魅力。
    【解决方案2】:

    尝试更新的版本:

    Set http = CreateObject("Msxml2.XMLHttp.6.0")
    

    这也可能是您的 Internet 安全设置存在问题(请参阅 here)。打开控制面板中的Internet 选项 小程序,在安全 选项卡中选择网站的区域(可能是“受信任的站点”),然后单击自定义级别...。

    杂项部分将跨域访问数据源设置为启用

    【讨论】:

    • 同一故事访问被拒绝 msxml6.dll
    • Internet 选项 > 安全选项卡 > 自定义级别对我有用。
    • 和我一样:在我更改自定义级别设置之前拒绝访问 msxml6.dll,然后它就起作用了。
    【解决方案3】:

    还可以将 URL 从 http 更改为 https。我帮忙

    【讨论】:

      【解决方案4】:

      对我来说,解决方案是在受信任的站点中添加 URL。

      Internet Explorer 浏览器 > 工具 > Internet 选项 > 安全 > 受信任的站点 > 站点 > 在“将此网站添加到区域:”下添加 URL,然后单击添加并保存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2014-08-10
        • 2021-03-06
        • 2011-05-15
        相关资源
        最近更新 更多