在同一台服务器上创建一个aspx网站的“克隆”
问题描述:
我目前正在一个aspx网站上工作。我想创建一个“克隆”,即在另一个文件夹中运行同一整个网站,例如,我希望www.example.com也可以在www.example.com/temp_site上运行。将创建一个新文件夹temp_site并将我的httpdocs文件夹的所有内容复制到temp_site工作?在同一台服务器上创建一个aspx网站的“克隆”
谢谢!
答
你可以写一个httpmodule类来实现它。以下是示例代码
public class RidirectModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
// Nothing to dispose
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
#endregion
void context_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
if (context.Request.HttpMethod == "GET")
{
string query = context.Request.RawUrl;
if (query.Contains("/temp_site"))
context.Response.Redirect(query.Replace("/temp_site", ""));
}
}
}
然后加入在web.config文件的HTTP模块。
答
如果它是一个asp.net Web应用程序,当您复制整个内容并将其放入一个子文件夹时,您的bin文件夹(您拥有dll的地方)可能会带来问题。这导致你有2个相同的dll bin目录,你将面临问题。
如果你有源代码,为什么不在你的解决方案中创建一个临时文件夹,然后添加所需的文件(asp.net)。你可以跳过复制通用文件(images/css/js/user控制等)并更新复制的页面以使用现有的页面。
如果您没有源代码,请尝试复制bin文件夹以外的所有内容并将其保存在子目录中。您可以更新链接到您的CSS文件/图像(在复制的文件中)以引用现有的CSS/images/js文件以避免重复的项目,然后删除它们的第二个副本(当我们复制到sub目录)
是的,它在bin文件夹中使用dll。那么你如何建议我解决这个问题? – user1016313 2011-12-14 03:04:15