From: Martin Plechsmid on 23 Apr 2010 07:43 Hello. (Details at the end of this post.) I have published my web site from VS2008 with the non-updatable option (i.e. updatable="false" in PrecompiledApp.config). The site is precompiled, however when requesting an .asmx file, the server responds with "The file '/test/PdfServiceLib.asmx' has not been pre-compiled, and cannot be requested." I used the ProcessMonitor to see what's happenning, and the w3wp.exe process behaves strangely. Six times (6x !) it finds the "pdfservicelib.asmx.cdcab7d2.compiled" successfully in the bin directory, but the seventh time it looks for it in the "Temporary ASP.NET Files" directory under the .NET installation - and fails. Why does IIS look for the pre-compiled file in the ASP.NET cache, when the site is marked as non-updatable? What do I need to set up in order IIS does not copy the files into the ASP.NET cache? Thank you, Martin. ------------------ Details: The ultimate purpose of making the site non-updatable was to prevent IIS to copy the precompiled files into the ASP.NET cache. The asmx file refers to a ..NET assembly that depends on native DLL libraries. The problem is that when the site is updatable, IIS copies the assembly into the ASP.NET cache, and the assembly is then unable to find the native DLLs - because IIS leaves the DLLs at the original place and does not copy them into the ASP.NET cache as well. PdfServiceLib.asmx contains a single line: <%@ WebService Class="PdfServiceLib.PdfServiceLibClass" %> When the site is compiled, the "bin/pdfservicelib.asmx.cdcab7d2.compiled" is created from the PdfServiceLib.asmx file. The PdfServiceLib.dll assembly implementing the ="PdfServiceLib.PdfServiceLibClass" class is placed in the bin/ folder. It is written in C++/CLI and depends on the native C++ runtime DLLs. Besides the ASP.NET HTTP module interface it supports also the COM interface, and this way it works correctly. The computer is Windows 2003 Server SP2, x64 edition, IIS 6. The DLLs are 32-bit and the IIS is switched to the 32-bit mode. trhe assembly uses .NET 2.0.
|
Pages: 1 Prev: Why image is not showing in repeater Next: A subtle problem with IntelliSense |