How to create a local server (i.e., localhost)

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • ljlevend2

    How to create a local server (i.e., localhost)

    Is there any way to create a local server during runtime? For example, if
    you add an existing Web Site to a Solution from within Visual Studio (by
    right clicking the solution in the Solution Explorer, then selecting Add -
    Existing Web Site...), then Visual Studio will create an ASP.NET Development
    Server on a random port (e.g., http://localhost:1619/Test). Can a similar
    thing be done during runtime with VB.NET? If not, is it possible to have a
    folder act as a permanent local server?

    Note that I am using VS.NET 2005 and WinXP Pro.

    Thanks for any help!
    Lance

  • Steven Cheng[MSFT]

    #2
    RE: How to create a local server (i.e., localhost)

    Hello Lance,

    As for the "create a local server during runtime" question you mentioned,
    do you mean you want programmtically start a local test webserver to run an
    ASP.NET 2.0 web appliation from a specified file system path(directory) ?

    Based on my understanding, the Visual Studio 2005 use the
    "WebDev.TestSer ver.exe" application(ins talled with .net framework 2.0) in
    the framework directory (C:\WINDOWS\Mic rosoft.NET\Fram ework\v2.0.5072 7).
    When Visual Studio load and host a ASP.NET 2.0 web project in IDE, it
    actually start this "WebDev.TestSer ver.exe" program and define the
    application settings (such as physical directory path, virtual path , port
    ....) through commandline arguments. For example:

    the following command (suppose the current directory is the .net 2.0
    framework directory) will start an ASP.NET 2.0 web project hosted in the
    local webserver, the application's physical directory is at
    "d:\workspace\w ebprojects\WebA pp1", the web app will be hosted as the
    "/WebApp/" virtual path, and listening on local port 8080:

    WebDev.WebServe r /port:8080 /path:"d:\worksp ace\webprojects \WebApp1"
    /vpath:"/WebApp1"

    So we can visit the application's pages through the following local address




    Here is a good blog article describing the usage of the test webserver:



    In addition, if you want to programmaticall y start such a web application
    in the test webserver, you can consider dynamically create a process
    pointing to the "WebDev.WebServ er.exe" program and supply the paramters.
    For example, here is a test .net code fragment that start a local webserver
    session in a console application:

    =============== =============== ====
    class Program
    {
    static void Main(string[] args)
    {
    Run();
    }

    static void Run()
    {
    Process proc = new Process();


    proc.StartInfo. FileName = HttpRuntime.Clr InstallDirector y +
    "\\WebDev.WebSe rver.exe";

    proc.StartInfo. Arguments = " /port:8888
    /path:\"D:\\temp \\precompiled\\ testsite1\\upda table\"
    /vpath:\"/testsite1\"";

    proc.StartInfo. CreateNoWindow = true;
    proc.StartInfo. UseShellExecute = false;

    if(proc.Start() )
    {
    Console.WriteLi ne("local webserver started........ ");
    }else{
    Console.WriteLi ne("local webserver failed to
    start........") ;
    }

    }
    }
    =============== =============== ==========

    BTW, since the "webdev.webserv er.exe" is a winform application, I would
    suggest you not try programmtically launch it in any non-interactive
    service(such as ASP.NET application or windows service), because in such
    service application, we can not interactively manage the created
    "WebDev.WebServ er" application and may cause problem.

    Hope this helps you. If you have anything unclear above, please feel free
    to post here.

    Sincerely,

    Steven Cheng

    Microsoft MSDN Online Support Lead



    =============== =============== =============== =====

    Get notification to my posts through email? Please refer to

    Gain technical skills through documentation and training, earn certifications and connect with the community

    ications.



    Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
    where an initial

    response from the community or a Microsoft Support Engineer within 1
    business day is

    acceptable. Please note that each follow up response may take approximately
    2 business days

    as the support professional working with you may need further investigation
    to reach the

    most efficient resolution. The offering is not appropriate for situations
    that require

    urgent, real-time or phone-based interactions or complex project analysis
    and dump analysis

    issues. Issues of this nature are best handled working with a dedicated
    Microsoft Support

    Engineer by contacting Microsoft Customer Support Services (CSS) at

    http://msdn.microsoft.com/subscripti...t/default.aspx.

    =============== =============== =============== =====



    This posting is provided "AS IS" with no warranties, and confers no rights.


    Comment

    • ljlevend2

      #3
      RE: How to create a local server (i.e., localhost)

      Hi Steven,

      Thank you so much for your excellent reply. Your sample code was exactly
      what I was looking for and was tremendously helpful. If possible, I'm hoping
      that you can help me with a few follow-up questions:

      1. Is there any way to hide the icon that appears in the notification area
      of the task bar?
      2. Is there any way to programically stop the ASP.NET Development Server on
      a given port (e.g., 8888)?
      3. Is there any way to determine whether the ASP.NET Development Server is
      already running on a given port?

      Thanks again!
      Lance


      "Steven Cheng[MSFT]" wrote:
      Hello Lance,
      >
      As for the "create a local server during runtime" question you mentioned,
      do you mean you want programmtically start a local test webserver to run an
      ASP.NET 2.0 web appliation from a specified file system path(directory) ?
      >
      Based on my understanding, the Visual Studio 2005 use the
      "WebDev.TestSer ver.exe" application(ins talled with .net framework 2.0) in
      the framework directory (C:\WINDOWS\Mic rosoft.NET\Fram ework\v2.0.5072 7).
      When Visual Studio load and host a ASP.NET 2.0 web project in IDE, it
      actually start this "WebDev.TestSer ver.exe" program and define the
      application settings (such as physical directory path, virtual path , port
      ....) through commandline arguments. For example:
      >
      the following command (suppose the current directory is the .net 2.0
      framework directory) will start an ASP.NET 2.0 web project hosted in the
      local webserver, the application's physical directory is at
      "d:\workspace\w ebprojects\WebA pp1", the web app will be hosted as the
      "/WebApp/" virtual path, and listening on local port 8080:
      >
      WebDev.WebServe r /port:8080 /path:"d:\worksp ace\webprojects \WebApp1"
      /vpath:"/WebApp1"
      >
      So we can visit the application's pages through the following local address
      >

      >
      >
      Here is a good blog article describing the usage of the test webserver:
      >

      >
      In addition, if you want to programmaticall y start such a web application
      in the test webserver, you can consider dynamically create a process
      pointing to the "WebDev.WebServ er.exe" program and supply the paramters.
      For example, here is a test .net code fragment that start a local webserver
      session in a console application:
      >
      =============== =============== ====
      class Program
      {
      static void Main(string[] args)
      {
      Run();
      }
      >
      static void Run()
      {
      Process proc = new Process();
      >
      >
      proc.StartInfo. FileName = HttpRuntime.Clr InstallDirector y +
      "\\WebDev.WebSe rver.exe";
      >
      proc.StartInfo. Arguments = " /port:8888
      /path:\"D:\\temp \\precompiled\\ testsite1\\upda table\"
      /vpath:\"/testsite1\"";
      >
      proc.StartInfo. CreateNoWindow = true;
      proc.StartInfo. UseShellExecute = false;
      >
      if(proc.Start() )
      {
      Console.WriteLi ne("local webserver started........ ");
      }else{
      Console.WriteLi ne("local webserver failed to
      start........") ;
      }
      >
      }
      }
      =============== =============== ==========
      >
      BTW, since the "webdev.webserv er.exe" is a winform application, I would
      suggest you not try programmtically launch it in any non-interactive
      service(such as ASP.NET application or windows service), because in such
      service application, we can not interactively manage the created
      "WebDev.WebServ er" application and may cause problem.
      >
      Hope this helps you. If you have anything unclear above, please feel free
      to post here.
      >
      Sincerely,
      >
      Steven Cheng
      >
      Microsoft MSDN Online Support Lead
      >
      >
      >
      =============== =============== =============== =====
      >
      Get notification to my posts through email? Please refer to
      >
      Gain technical skills through documentation and training, earn certifications and connect with the community

      ications.
      >
      >
      >
      Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
      where an initial
      >
      response from the community or a Microsoft Support Engineer within 1
      business day is
      >
      acceptable. Please note that each follow up response may take approximately
      2 business days
      >
      as the support professional working with you may need further investigation
      to reach the
      >
      most efficient resolution. The offering is not appropriate for situations
      that require
      >
      urgent, real-time or phone-based interactions or complex project analysis
      and dump analysis
      >
      issues. Issues of this nature are best handled working with a dedicated
      Microsoft Support
      >
      Engineer by contacting Microsoft Customer Support Services (CSS) at
      >
      http://msdn.microsoft.com/subscripti...t/default.aspx.
      >
      =============== =============== =============== =====
      >
      >
      >
      This posting is provided "AS IS" with no warranties, and confers no rights.
      >
      >
      >

      Comment

      • ljlevend2

        #4
        RE: How to create a local server (i.e., localhost)

        Hi Steven,

        Thank you so much for looking into my additional questions. Your help has
        been exceptional and I am very grateful.

        I would be interested to review the demo project that you created but I do
        not see any way to access it (I am using IE to view the Newsgroup). You
        recently sent me an email informing me of your reply. If it wouldn't be too
        much trouble, could you please send the demo project as an email attachment
        to that same address (or let me know some other way to get the demo)?

        Thanks again!
        Lance



        "Steven Cheng[MSFT]" wrote:
        Hi Lance,
        >
        Thanks for your reply.
        >
        As I mentioned in the last reply, the WebDev.TestServ er is designed as a
        GUI/winform application which is recommended to host in an interactive
        logon user session and hard to automate in a non-interactive service
        session. For the new questions you mentioned, here are some of my
        understanding and suggestions:
        >
        1. Is there any way to hide the icon that appears in the notification area
        of the task bar?
        =============== ========
        I'm afraid this is limited by the webserver.exe since by default the
        windows is not displayed and it is only the icon on taskbar that let the
        user to interactive with the Webserver program. And I've lookup the
        disassembly code of the webserver.exe, the icon is forced to display and
        there is no configuration options.
        >
        >
        2. Is there any way to programically stop the ASP.NET Development Server on
        a given port (e.g., 8888)?
        =============== =======
        Since the webserver.exe is a winform application which has a main window,
        when we manage it interactively, we could stop it by clicking the "Stop"
        button on the winform. If you want to programmaticall y stop it, so far what
        I've got is using WIN32 API to programmaticall y find the webserver.exe
        application's main window and send some messages to the "Stop" button to
        end it. This also require we're doing this in an interactive environment
        (in a console or winform application that running under interactive logon
        session).
        >
        >
        3. Is there any way to determine whether the ASP.NET Development Server is
        already running on a given port?
        =============== =========
        I think this is possible, since the port number is always append in the
        webserver.exe applicaion main windows's Caption, we can capture the
        caption of the window and pick the port number from the caption string. Of
        course, we need to programmaticall y find all the existing webserver
        application windows first.
        >
        For your convenience, I've created a complete demo project which contains
        the necessary code to do the work for #2 and #3 above. Most of them require
        calling win32 API through PINVOKE. I've attached this project in this
        thread, you can get it if you're using Outlook Express to visit the NNTP
        newsgroup. If you have problems accessing it, please feel free to let me
        know.
        >
        Sincerely,
        >
        Steven Cheng
        >
        Microsoft MSDN Online Support Lead
        >
        This posting is provided "AS IS" with no warranties, and confers no rights

        Comment

        • Steven Cheng[MSFT]

          #5
          RE: How to create a local server (i.e., localhost)

          Hi Lance,

          Glad to hear from you. Sure, I will send you the demo project through
          email(the one I send the notify mail). Please let me know if you still have
          problems getting it.

          Sincerely,

          Steven Cheng

          Microsoft MSDN Online Support Lead

          Comment

          • ljlevend2

            #6
            RE: How to create a local server (i.e., localhost)

            Got it and it works great. Thanks again for the amazing help!

            Lance

            Comment

            Working...