bri189a Posted December 28, 2005 Posted December 28, 2005 I'm on an ASP 3.0 project right now and need to integrate a library (business) functions for use with this ASP 3.0 web site. I checked the 'Register for COM interop' on the build and put in all the necessary attributes...everything initially worked great...our old ASP 3.0 application was playing happy with a .NET dll. Then we went to make changes. We recompiled and no changes were detected in ASP application - long story short it was still using the old dll. I manually went in with regasm and put in the dll with /u and /tlb arguements and it came back with the successful message for un-registering. From experiance I went to delete the .dll and .tbl (and also the debug file) and they were locked. I stopped IIS, ran the regasm command again, and still the file was locked (access denied/in use). I tried stopping the DLLHOST.EXE process that ASP was running on and of coarse that gave me access denied. Obviously I'm missing an important step here and I curious if anyone has run into it before and how to get around it. I have to make sure that a process will always actually uninstall and delelte the dll/tlb and install the new (correct/updated) ones for change management...rebooting web servers is not an option (to release the locks) and it is too large of a project to retro-fit to .NET. So I'm hoping someone out there has some good advise...I've Google'd and spent a lot of time on MSDN and everything say the regasm with /u switch should work...but then there examples are VB6 project and COM projects...not ASP. Thanks in advance for any help. Quote
Igor Sukhov Posted January 24, 2006 Posted January 24, 2006 Upgrade your COM object to the out of process (hosted in the separate dllhost.exe) COM+ application. In this scenario - you only need to restart dllhost.exe running your business object without restarting process hosting ASP runtime. Another good advice - fix the Assembly version of the .NET component you're exposing as COM object. Quote
Recommended Posts