C# 通过Web服务C在IIS-7中托管Asp.net应用程序#
我尝试了下面的代码…当我从windows应用程序运行这些代码时,它工作得非常好。但是相同的代码没有被web服务执行。它复制了文件夹,但是wwwroot目录,但是没有在IIS上托管。请帮助我C# 通过Web服务C在IIS-7中托管Asp.net应用程序#,c#,asp.net,web-services,C#,Asp.net,Web Services,我尝试了下面的代码…当我从windows应用程序运行这些代码时,它工作得非常好。但是相同的代码没有被web服务执行。它复制了文件夹,但是wwwroot目录,但是没有在IIS上托管。请帮助我 public void HostInSerevr(string client4) { try { string strWebsitename = client4; // abc string strApplicat
public void HostInSerevr(string client4)
{
try
{
string strWebsitename = client4; // abc
string strApplicationPool = "DefaultAppPool"; // set your deafultpool :4.0 in IIS
string strhostname = client4.ToLower() + ".clouddunk.com"; //abc.com
//string stripaddress = txtipaddress.Text;// ip address
string bindinginfo = "*:" + "80:" + strhostname;
//string bindinginfo = strhostname;
string websitePath = @"C:\inetpub\wwwroot" + "\\" + "ATP_" + client4;
//=@"C:\inetpub\wwwroot"
//check if website name already exists in IIS
Boolean bWebsite = IsWebsiteExists(strWebsitename);
if (!bWebsite)
{
//Site mySite = serverMgr.Sites.Add(strWebsitename.ToString(), "http", bindinginfo, @"C:\inetpub\wwwroot\yourWebsite");
Site mySite = serverMgr.Sites.Add(strWebsitename.ToString(), "http", bindinginfo, websitePath);
mySite.ApplicationDefaults.ApplicationPoolName = strApplicationPool;
mySite.TraceFailedRequestsLogging.Enabled = true;
mySite.TraceFailedRequestsLogging.Directory = @"C:\inetpub\CustomLog";
mySite.ServerAutoStart = true;
serverMgr.CommitChanges();
string path = @"C:\Windows\System32\drivers\etc\hosts";
//DirectoryInfo di = new DirectoryInfo(path);
//FileInfo[] files = di.GetFiles("*.File").Where(p => p.Extension == ".File").ToArray();
//if (files.Count() > 0)
//{
string writeText = "127.0.0.1" + " " + strhostname;
File.AppendAllText(path, Environment.NewLine + writeText);
//}
}
}
catch { }
}
public bool IsWebsiteExists(string strWebsitename)
{
Boolean flagset = false;
SiteCollection sitecollection = serverMgr.Sites;
foreach (Site site in sitecollection)
{
if (site.Name == strWebsitename.ToString())
{
flagset = true;
break;
}
else
{
flagset = false;
}
}
return flagset;
}
这里发生了什么错误?代码中没有错误。它已经完美地执行了,除了IIS托管代码(没有发生错误,但是它没有被托管)之外,所有任务都在执行中。public void HostInSerevr(string client4){}