Our asp.net web servers are giving occasional binding problems which result in a page not being displayed to the end user. Pressing refresh usually works.
If you look in the event log you get the following entry:
Exception information:
Exception type: FileLoadException
Exception message: A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
Our assembly does have a strong name, however given that this works 99.9% of the time I don't see this as the problem. I have turned on fusion binding logging and when the error occurs we get a binding log file.
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable C:\Windows\SysWOW64\inetsrv\w3wp.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = WEBFUND\WF6User
LOG: Where-ref bind. Location = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clients\6c02a9d4\233e1482\App_Web_emailpdf.aspx.afcecd13.5bzg9b2a.dll
LOG: Appbase = file:///D:/FinancialExpress/ClientsV21/
LOG: Initial PrivatePath = D:\FinancialExpress\ClientsV21\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clients\6c02a9d4
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clients\6c02a9d4
LOG: AppName = 233e1482
Calling assembly : (Unknown).
===
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Start binding of native image App_Web_emailpdf.aspx.afcecd13.5bzg9b2a, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clients\6c02a9d4\233e1482\App_Web_emailpdf.aspx.afcecd13.5bzg9b2a.dll.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.
I have copied depends.exe on the server and run that. It gives two files not found: GPSVC.DLL and IESHIMS.DLL. But can that be the problem? Given that most pages are displayed correctly shouldn't it always not work if these files are missing?
I think the answer to this one is to avoid putting strongly named assemblies in the bin folder. Apparently Microsoft do not support this, although it may appear to work. Strongly named assemblies should be placed in the GAC.
User contributions licensed under CC BY-SA 3.0