我的asp.net项目,目前从 http:// localhost:51143 / default.aspx
运行无论如何,我可以将root包含在 http:// localhost:51143 / TOrders / default.aspx 中。我想这样做的原因是因为被调用的URls菜单点击事件参考“TOrders / Reports / aaa.aspx等等,在生产中它将引用内部网/ TOrders / Reports / aaa.aspx等。
答案 0 :(得分:0)
您需要HttpRequest.ApplicationPath属性 或HostingEnvironment.ApplicationVirtualPath财产。
对于构建虚拟路径也很有用VirtualPathUtility class。
修改强>
尝试将项目复制到web根目录的子文件夹中,例如。在IIS中:
C:\inetpub\wwwroot\ (or what you set)
C:\inetpub\wwwroot\MyProject\
现在,在IIS Managment Console中,在默认Web中,您将创建一个新的“应用程序”。您可以升级现有文件夹,也可以在文件夹中创建虚拟新文件夹。
然后选择虚拟路径(TOrders)并设置物理路径。如果你有.NET 4,你也会设置AppPool,如果在IIS6.x上有2.0 / 3.5,你也可以选择运行时。首先尝试最高版本......
转到localhost / TOrders /
答案 1 :(得分:0)
一种解决方案可能是拦截 Global.asax 中 Application_BeginRequest 方法中的每个请求。
在那里,您可以创建一个规则,从头开始删除 TOrders / 。尝试这样的事情:
void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.RawUrl.StartsWith("TOrders/"))
Server.Transfer(Request.RawUrl.Substring(8));
}
这可能不是最好的解决方案,但它应该足以让你知道该怎么做。
修改强>
由于您拥有网站项目(不是网站),因此您可以设置项目的虚拟路径。我认为这就是你要找的东西。
如果您使用的是VS2010,请在解决方案资源管理器中右键单击您的项目并选择属性,然后在 Web 选项卡的“服务器”部分中,更改虚拟路径您的项目 / TOrders / 而非 / 这是默认值。现在你应该得到 http:// localhost:51143 / TOrders / default.aspx