Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

System.Reflection.Assembly.GetEntryAssembly() is null when calling from Web App [duplicate]

I am developing a web application in visual studio 2010 with target framework - 3.5 I am using a dll (developed by another team) in which i get an error for following code :

    string strName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;

i checked and found that System.Reflection.Assembly.GetEntryAssembly() is returning null and also searched about that and found on msdn that GetEntryAssembly() may return null, when it is called from any unmanaged code.

When I am calling from my web application, it is returning null and when I call from any windows application, it works fine,i.e. it gets the entry assembly name (the assembly from which the execution has started). Why it is returning null in Web application? i can't understand. I also tried to change the output type of my web project to Class Library, from the project properties in visual studio, but the dropdown for output type, is disabled and i can't change the output type of the project. Please help me if any solutions exists for this problem.

thanks in advance

Amit Shahani

like image 975
Amit Shahani Avatar asked Oct 22 '22 17:10

Amit Shahani


1 Answers

Is the ASP.Net host process managed. The answer is, no. Therefore, the result of GetEntryAssembly in your web app is null.

The solution all depends on what your third party assembly is trying to do and why it calls GetEntryAssembly.

You could create an executable to host the assembly and launch that in a seperate process, then the call would return your executable assembley. However, that may not be the best course of action, it depends on what you want to achieve overall.

like image 135
Jodrell Avatar answered Nov 04 '22 02:11

Jodrell