Solved

Why is it whenever I use System.Web.Hosting.ApplicationHost.CreateApplicationHost it always returns System.IO.FileNotFoundException?

Posted on 2008-06-19
3
2,351 Views
Last Modified: 2013-12-16
I'm trying to host asp.net application and asp web services without IIS. I found the cassini web project and other tutorial around the net. All of them are using the CreateApplicationHost from System.Web.Hosting.ApplicationHost namespace. I copied some code from those project and build it properly but whenever I tried to run it on debug I always get the file not found error. I think it is caused by the Virtual Directory path but don't know how to fix it.


public class MySimpleHost : MarshalByRefObject
    {
        public void ProcessRequest(string page, string query, TextWriter tw)
        {
            SimpleWorkerRequest swr = 
                new SimpleWorkerRequest(page, query, tw);
            HttpRuntime.ProcessRequest(swr);
        }
    }
 
 
namespace SimpleHost
{
    class Program
    {
        static void Main(string[] args)
        {
            string dir = System.IO.Directory.GetCurrentDirectory();
 
            MySimpleHost msh = (MySimpleHost)ApplicationHost.CreateApplicationHost(
                typeof(MySimpleHost), "/", dir);
         }
    }

Open in new window

0
Comment
Question by:hackpin
  • 2
3 Comments
 
LVL 53

Expert Comment

by:Dhaest
ID: 21819947
Its looking for a file containing MyHost class. It is included with the main program itself (UsingAspRuntime.exe). The ASP.NET runtime looks for all assembalies in the bin directory. So be sure that the bin directory has been created and it contain the UsingAspRuntime.exe. The build script does this automatically.
http://www.codeproject.com/KB/dotnet/usingaspruntime.aspx

Another thread about it
http://forums.asp.net/rss.aspx?ForumID=67&PostID=771470
0
 
LVL 1

Author Comment

by:hackpin
ID: 21852250
I compiled the projects Dhaest mention above properly unfortunately I encountered the same problem  the System.io.filenotfound exception. What I wanted to do is to make my own hosting application rather than using the code on code project. I want to make it from scratch for me to understand it well.

I looked on my bin folder and the exe file is already created for me after my build. Can anyone point me out what am I missing?
0
 
LVL 1

Accepted Solution

by:
hackpin earned 0 total points
ID: 21852408
Thanks for the reply Dhaest I now know what I need to do first before I can use the System.Web.Hosting namespace.

I created my own implementation of http server using httplistener.
Create a SNK file for that library.

To create SNK file
Use visual studio command line then use the following:
sn.exe -k [name of the snk file].snk

In your solution project go to configuration  manager under the Singing tab and then add your newly created snk file.

once again use your visual studio command line then go to the folder of your class library.
Use the following command to add your dll to global assembly cache.

gacutil -i [library name].dll

Now I can properly use the .CreationApplicationHost method provided by System.Web.Hosting namespace.

I good example of cassini web server ported out to vb.net for other developer:
http://www.codeproject.com/KB/applications/xNetServer.aspx
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question