Click here to Skip to main content
Rate this: bad
Please Sign up or sign in to vote.
See more: C# ASP.NET
I need an urgent idea/ how to create sub-domain for each user who is registering in my application..
For eg) I hosted my application in
If a user with name "bsoft" is registered in my app.
I need to create a site for the user as ""
In simple words how to rewrite the url for each user??
Please help..
Posted 30-Jan-13 21:38pm
Sergey Alexandrovich Kryukov at 31-Jan-13 2:41am
Why? I guess, you have very few customers. But what if you need to scale it up?..
Edo Tzumer at 31-Jan-13 2:49am
Say Sergey, if we manage to get the people to ask the question instead of stating the solution they want, would the world be a better place (at least for their customers)?
Sergey Alexandrovich Kryukov at 31-Jan-13 2:59am
Maybe. At least, we would have a better looking, more useful CodeProject :-)
However, this question is actually not bad; in fact, this is still a real question, while too many inquirer's posts in this forum are not. And you may not see many of those non-questions, because I recently removed a lot of them... :-)
This is becoming a real disaster...
Thank you,
srimathi89 at 31-Jan-13 3:25am
When will I get a solution???
aspnet_regiis -i at 31-Jan-13 4:52am
I have seen somebody doing this is with C#. I dont have any code at the moment. Continue with your research and it can be done. Some references I can provide you
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

try with below code it may solve your problem
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Administration;
using Microsoft.Web.Administration;
using System.IO;

public partial class _Default : System.Web.UI.Page
    private const string SERVER_IP = "";// put your ip address
  private const int PORT = 80;
  private const string WEB_DOMAIN_PATH = @"F:\\web\domains\{0}\";
    //Live server
    //private const string SERVER_IP = "";

    protected void Page_Load(object sender, EventArgs e)
   if (!string.IsNullOrEmpty(Request.QueryString["user"]))
     string username = Request.QueryString["user"];
     string status = CreateUserSite(username, "");//change your Domain id

    catch(Exception ex)
    Response.Write("user parameter not supplied"); 

    private string CreateUserSite(string user, string domain)

   string path = string.Format(WEB_DOMAIN_PATH, domain);
        string userpath = path + user;
        string userUrl = user + "." + domain;
        using (ServerManager serverManager = new ServerManager())
            bool siteExists = false;
            int number = serverManager.Sites.Where(p => p.Name.ToLower().Equals(userUrl.ToLower())).Count();
            if (number == 0)
                siteExists = false;
                siteExists = true;
            if (!siteExists)
                //create user directory
                //copy every files from a-base to a new created folder
                FileInfo[] d = new DirectoryInfo(path + @"\a-base").GetFiles();
                foreach (FileInfo fi in d)
                    File.Copy(fi.FullName, userpath + @"\" + fi.Name, true);
                //create a directory
                Directory.CreateDirectory(userpath + @"\swfobject");
                FileInfo[] d1 = new DirectoryInfo(path + @"\a-base\swfobject").GetFiles();
                foreach (FileInfo fi in d1)
                    File.Copy(fi.FullName, userpath + @"\swfobject\" + fi.Name, true);

                //create site
                Site mySite = serverManager.Sites.Add(userUrl, path + user, PORT);
                mySite.ServerAutoStart = true;
                mySite.Applications[0].ApplicationPoolName = domain;
                //create bindings
                mySite.Bindings.Add(string.Format("{0}:{2}:{1}", SERVER_IP, userUrl, PORT ), "http");
                mySite.Bindings.Add(string.Format("{0}:{2}:www.{1}", SERVER_IP, userUrl, PORT), "http");

                Configuration config = serverManager.GetApplicationHostConfiguration();
                ConfigurationSection httpLoggingSection = config.GetSection("system.webServer/httpLogging", userUrl);
                httpLoggingSection["dontLog"] = true;
              //  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('" + userUrl + " created');", true);

                //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "error", "alert('user exists. Please use other name');", true);
       throw new Exception("user exists. Please use other name");

      return userUrl + " has been successfully created"; 
DrTJ2066 at 7-Aug-14 17:59pm
Nice approach, but how can I do it in a sharing environment without the access to the configuration file?!
I receive this error:
Filename applicationHost.config Error Cannot write configuration file due to insufficient permissions
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Hi srimathi
According to me you have to contact with your Hosting Server Vendor may they will provide you API for this.
srimathi89 at 31-Jan-13 4:09am
But I host it in my own server.. How could I do it????
vivek511 at 31-Jan-13 4:43am
use the above code

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 190
1 Jochen Arndt 155
2 PIEBALDconsult 150
3 Afzaal Ahmad Zeeshan 120
4 DamithSL 115
0 OriginalGriff 5,695
1 DamithSL 4,591
2 Maciej Los 4,012
3 Kornfeld Eliyahu Peter 3,480
4 Sergey Alexandrovich Kryukov 3,190

Advertise | Privacy | Mobile
Web04 | 2.8.141220.1 | Last Updated 31 Jan 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100