M
Martin Plechsmid
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.
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.