Link to home
Start Free TrialLog in
Avatar of lee88
lee88Flag for United States of America

asked on

ASP - missing msxml3.dll error

I have an ASP page that uses msxml3.dll and runs under //Localhost on my laptop. It quit working all of a sudden. I have not edited the ASP source code since it ran a week ago.

The error message that I am getting is:

msxml3.dll
error '800c0005'
The system cannot locate the resource specified.

I do have msxml3.dll in my C:\Windows\System32 folder. It's been there for ever.
I put a copy of msxml3.dll in the same folder as the ASP page, thinking that might fix the problem, but it did not.

I did notice that my laptop (which runs XP) was updated with a Windows Update a few days ago. Could this have anything to do with it?
ASKER CERTIFIED SOLUTION
Avatar of Anthony Perkins
Anthony Perkins
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of lee88

ASKER

I see these dlls in my system32 folder:
msxml, msxmlr, msxml2, msxml2r, msxml3, msxml3a, msxml3r, msxml4, and msxml4r.

How should I go about updating or registering?

Thanks.
Avatar of Hecatonchires
Hecatonchires

regsvr32 installs dlls.  
open up a command line,
change directories to the one with the dll u want
type in regsvr32, hit enter
it will give you a list of options
pick the ones you want (possibly /i, but i thin it works without it)
regsvr32 dllname
Avatar of lee88

ASKER

Anybody know about the version differences? I assume I want v3 or v4. Then code was recently written (few weeks ago), so I also question why it refers to v3 and not v4.
isn't v3 deprecated?  msxml4 download is easily available to install version 4.  

was the code written by you?
Avatar of lee88

ASKER

no. A subcontraact coder wrote it.
Avatar of lee88

ASKER

I looked at the ASP source code, and it actually refers to v2:

Set oHTTP = Server.CreateObject("MSXML2.XMLHTTP")

Which gives this error:

msxml3.dll error '800c0005'
The system cannot locate the resource specified.
/flight/index.asp, line 218

So, I tried changing the code to refer to v3:

Set oHTTP = Server.CreateObject("MSXML3.XMLHTTP")

Which gives this error:

Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/flight/index.asp, line 212
Invalid class string

So, I tried changing the code to refer to v4:

Set oHTTP = Server.CreateObject("MSXML4.XMLHTTP")

Which gives this error:

Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/flight/index.asp, line 213
Invalid class string

So, then, I downloaded and installed v4 from Microsoft's site, and referred to v4:

Which gave this error:

Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/flight/index.asp, line 213
Invalid class string

Any suggestions woudl be greatly appreciated!

whats on and around line 213?
Avatar of lee88

ASKER

I believe line 213 is this line:

Set oHTTP = Server.CreateObject("MSXML4.XMLHTTP")

Here are some of the surrounding lines:

if Not IsArray(session("cit")) or txtAirline="" then
      Dim cit(2900), fl(3000)
'      Set oHTTP = Server.CreateObject("MSXML2.XMLHTTP")
'      Set oHTTP = Server.CreateObject("MSXML3.XMLHTTP")
      Set oHTTP = Server.CreateObject("MSXML4.XMLHTTP")
      txtFlightTime=left(txtFlightTime,2)
      DataToSend="FlightType=BOTH&Carrier=ALL"
      oHTTP.Open "POST","http://www.flychicago.com/fidsohare/flights.asp",false
      oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
      oHTTP.Send(DataToSend)
      htmlSource = oHTTP.ResponseText
Hmm, after poking around, maybe this will help:
I'm having issues finding the xml classes and methods because of my restricted web access at work.
Server.CreateObject("Msxml2.ServerXmlHttp.4.0")
Gah, it all goes to the same place!  Ok, I was looking at:
GUID and ProgID information
Why Version independant progids and guids were removed
Msxml 4.0 guids and progids
Avatar of lee88

ASKER

So, if I understand your comments correctly, I replaced the CreateObject line with this:

Set oHTTP = Server.CreateObject("Msxml2.ServerXmlHttp.4.0")

But now, I get this error:

msxml4.dll error '80070005'
Access is denied.
/flight/index.asp, line 219

I believe line 219 is this line:

oHTTP.Send(DataToSend)

Am I doing something wrong?
You need to do a search for msxml4 on your system and set the file permissions to be read by everyone.

If that doesn't work then for testing purposes set the anonymous login in IIS for that file to a user with administrative privileges and let us know if it works.
Contrary to popular belief this error has nothing to do with setting the permissions for the msxml4.dll and/or any of its dependant dll's:  WinHTTP5.dll, Msxml4a.dll, Msxml4r.dll

And I won't even comment on giving administrator (be it local or domain) permissions to the IUSR_machine or IWAN_machine, even temporarily.

However here are some potential causes:
PRB: "Access Denied" Error Message When Using ServerXMLHTTP to Access an Authenticated Site
http://support.microsoft.com/kb/291008/EN-US/

BUG: "Access is denied" Error Message When Making HTTPS Requests with ServerXMLHTTP
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q302080
(Notice that this article says it was fixed in version 3 SP2, however it does apply to "Microsoft XML Core Services 4.0")

However in my experience the error is usually caused by mismatched or outdated dll's.  Take a look at the following article for a list of the version numbers for each dll, I suspect you will find that one of yours does not match or is outdated:
Version list for the Microsoft XML parser
http://support.microsoft.com/kb/269238

Finally and somewhat unrelated, this article should give you a better understanding of ServerXMLHTTP:
Frequently asked questions about ServerXMLHTTP
http://support.microsoft.com/default.aspx?scid=kb;EN-US;290761
>> Contrary to popular belief this error has nothing to do with setting the permissions for the msxml4.dll and/or any of its dependant dll's:  WinHTTP5.dll, Msxml4a.dll, Msxml4r.dll

However if the permissions did not allow the IUSR_machine account to read the file a permissions error would occur hence it was a valid suggestion.

>> And I won't even comment on giving administrator (be it local or domain) permissions to the IUSR_machine or IWAN_machine, even temporarily.

That's good because that's not what I was suggesting. I was suggesting that the default anonymous account be switched to an administrative account. As in have IIS run the page using an administrative account. Completely different.

I'm getting really tired of your attitude.
>>I'm getting really tired of your attitude.<<
If you feel my comments are in any way inappropriate than feel free to take it up in Community Support, where it belongs, not here.  No one cares.
I just thought I'd let you know.
Another possible reason for the permission denied error, and sorry acperkins if this is included in the links you provided, I have not looked through them as yet, is that if you are trying to send data to a different domain you are likely to receive a permission denied error.  This has nothing to do with the DLL's.

Neal.