2012-07-21 117 views
0

我的asp.net项目,目前由HTTP运行://本地主机:51143/Default.aspx的如何将项目的根添加到本地主机路径

反正是有,我可以包括根到此像http:// localhost:51143/TOrders/default.aspx我想这样做的原因是因为在菜单上单击事件调用的URls引用“TOrders/Reports/aaa.aspx等等生产它会参考intranet/TOrders/Reports/aaa.aspx等。

回答

0

您需要HttpRequest.ApplicationPath属性 或HostingEnvironment.ApplicationVirtualPath财产。

也可用于构建虚拟路径VirtualPathUtility类。

编辑:

尝试将您的项目复制到你的Web根目录下的子目录下,对于如。在IIS中:

C:\inetpub\wwwroot\ (or what you set) 
C:\inetpub\wwwroot\MyProject\ 

现在在IIS管理控制台中,在默认Web中,创建一个新的“应用程序”。要么升级现有的文件夹,要么创建一个虚拟的新文件夹。

然后选择一个虚拟路径(TOrders)并设置物理路径。在那里,如果你有.NET 4,你也可以设置AppPool,如果你在IIS6.x上有2.0/3.5,你也可以选择运行时。尝试的最高版本第一...

进入到localhost/TOrders/

+0

请你详细说明一下。这可以通过非编程方式完成吗? – stackuser 2012-07-21 20:33:56

+0

谢谢。我按照你的解释做了。但在IIS 7中,当我尝试浏览localhost/TOrders/default.aspx时,它显示Intranet网站http://mytsystem/default.aspx的default.aspx。不知道我做错了什么 – stackuser 2012-07-23 17:16:54

0

一种解决方案可能是拦截的Application_BeginRequest方法每个请求Global.asax中
在那里您可以创建一条规则,从开始删除托运商/。尝试这样的:

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (Request.RawUrl.StartsWith("TOrders/")) 
     Server.Transfer(Request.RawUrl.Substring(8)); 
} 

这可能不是最好的解决方案,但它应该足以让你知道该怎么做。

编辑:

既然你有web项目(不是网站),你可以设置你的项目的虚拟路径。我认为这是你正在寻找的。

如果使用VS2010,在解决方案资源管理器中右击你的项目,并选择属性,然后网络选项卡上,在服务器部分,改为/TOrders/,而不是项目的虚拟路径/这是默认值。现在你应该得到http:// localhost:51143/TOrders/default.aspx

相关问题