Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Installing IIS webservice on a 64-bit system

6 views
Skip to first unread message

Martin Plechsmid

unread,
Apr 20, 2010, 9:42:46 AM4/20/10
to
Hello,

we have a 32-bit dll implementing both a webservice and a COM interface.
When installed on a 32-bit system, it works fine both ways. On a 64-bit
system, it works fine as a COM object, however, we are unable to get it
working as a webservice. In the EventLog we've got

SideBySide: "Dependent Assembly Microsoft.VC90.DebugCRT could not be
found and Last Error was The referenced assembly is not installed on your
system."

- The structure of the webservice directory is as follows:

PdfServiceLib.asmx
PrecompiledApp.config
Web.config
bin\
itextsharp.dll
itextsharp.pdb
PdfServiceLib.dll
PdfServiceLib.pdb
Microsoft.VC90.DebugCRT\
Microsoft.VC90.DebugCRT.manifest
msvcm90d.dll
msvcp90d.dll
msvcr90d.dll
Microsoft.VC90.DebugMFC\
Microsoft.VC90.DebugMFC.manifest
mfc90d.dll
mfc90ud.dll
mfcm90d.dll
mfcm90ud.dll

- PdfServiceLib.asmx contains this single line:
<%@ WebService Class="PdfServiceLib.PdfServiceLibClass" %>

- PdfServiceLib.dll itself is implemented in C++/CLI. It uses .NET 2.0, and
depends on itextsharp.dll, which itextsharp.dll is implemented in C#.

- <dependentAssembly> versions in PdfServiceLib.dll match exactly the
versions of Microsoft.VC90.DebugCRT/MFC.

- We install the webservice through the IIS Manager -> Default Web Site ->
New -> Virtual Directory. We leave the default settings, only check on the
"Run scripts (such as ASP)" permission.

- We access the service through
http://localhost/PdfService/PdfServiceLib.asmx, but it returns

"This application has failed to start because the application
configuration is incorrect. Reinstalling the application may fix this
problem. (Exception from HRESULT: 0x800736B1)"


and leaves the following mesage (mentioned at the beginning) in the
event-log:

SideBySide: "Dependent Assembly Microsoft.VC90.DebugCRT could not be
found and Last Error was The referenced assembly is not installed on your
system."

Using ProcessMonitor I found that w3wp.exe looks for
"Microsoft.VC90.DebugCRT" in the "bin\" directory (where it finds it), but
later csrss.exe looks for the same in

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\pdfservice.debug\efde1b6a\72378164\assembly\dl3\501563d7\0054d6f7_987dca01\(Microsoft.VC90.DebugCRT\)Microsoft.VC90.DebugCRT.manifest"

where it doesn't find it.

- It seems to me that IIS copies the webservice dll-s to a temporary
directory (see the previous point), but doesn't copy the dependencies as
well, which results in the error. How to get the webservice working? Should
I create a manifest file to tell IIS what are the PdfServiceLib.dll
dependencies??? Or what else?

Thank you,
Martin.


Martin Plechsmid

unread,
Apr 27, 2010, 8:36:35 AM4/27/10
to
More info:

When I manually copy all the required DLLs into the "ASP.NET Temporary
Files" cache directory, the webservice begins miraculously to work. (Of
course, this cannot be used as a production solution.) This confirms that
the only problem is in that IIS doesn't copy all the required DLLs together
with the assemblies into the cache.

It seems, however, that on computers with Visual Studio installed the
webservice works, but on computers without it the webservice doesn't work.
Tested on two computers with and three computers without VS. Independently
whether the computer is a server or a workstation, whether 32 bit or 64 bit.
Strange.

Any idea?

Thank you,
Martin.


"Martin Plechsmid" <Se...@No.Mail> píąe v diskusním příspěvku
news:OCdWf9I4...@TK2MSFTNGP04.phx.gbl...

0 new messages