ASP.net相对路径不工作?

这应该很简单,但它不起作用。ASP.net相对路径不工作?

我在我的项目的根下有一个文件。我想这样称呼它。

GetWorkbook("tplBud806_wRevenue.xls") 

我将项目发布到服务器并尝试运行它,服务器说它找不到它。

Could not find file 'c:\windows\system32\inetsrv\tplBud806_wRevenue.xls'. 

这不是它应该采取的路径。它应该在E:\ IIServer \ rootwww \ reports \ tplBud806_wRevenue.xls下。

我认为相对路径应该从项目运行的路径开始。我也尝试过。

GetWorkbook("/tplBud806_wRevenue.xls") 

GetWorkbook("\tplBud806_wRevenue.xls")

GetWorkbook("~/tplBud806_wRevenue.xls")

GetWorkbook("~\tplBud806_wRevenue.xls")

有没有我失踪的一些设置?这应该是简单的...

回答:

GetWorkBook(Server.MapPath("tplBud806_wRevenue.xls")); 

回答:

Server.MapPath?

回答:

GetWorkbook不是ASP.NET函数,它可能默认为调用它的进程启动的文件夹。这种情况下的过程是一个IIS进程,可能在该文件夹中启动。

回答:

您的应用程序正在位于错误目录中的w3wp.exe加载的AppDomain中运行。这意味着试图查找任何文件将在该目录中开始。正如其他人所述,您应该使用Page.MapPath。它告诉应用程序开始查看您的aspx所在的文件夹。

回答:

GetWorkBook(Server.MapPath("~/tplBud806_wRevenue.xls"));如果.XLS文件位于项目的根目录下。

您也可以使用~与ResolveURL()结合使用来访问站点中的URL。所以~会被你的项目的根URL来代替

例子:

ResolveURL("~\tplBud806_wRevenue.xls")

将被转化为 http://myproject.url/website/tplBud806_wRevenue.xls

如果您需要磁盘访问,就像在你的榜样,使用Server.MapPath

看看这个SO post了解更多关于Server.MapPath

以上是 ASP.net相对路径不工作? 的全部内容, 来源链接: utcz.com/qa/258677.html

回到顶部