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