Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法确定文件是否位于web服务器上,因为确定目录的各种方法不起作用_C#_Asp.net_Iis 10 - Fatal编程技术网

C# 无法确定文件是否位于web服务器上,因为确定目录的各种方法不起作用

C# 无法确定文件是否位于web服务器上,因为确定目录的各种方法不起作用,c#,asp.net,iis-10,C#,Asp.net,Iis 10,我正在使用c#在asp.net vs2015中开发一个应用程序,开发环境是Win10Pro机器。我可以使用各种方法中的任何一种来获取工作目录,并查看dev pc上是否存在特定的文件,但Web服务器上不存在。我已经尝试了下列方法: 所有这些都在Dev PC上工作,但在Web服务器上使用时,它不会返回工作目录。该服务器是使用IIS10的2016数据服务器。问题是,除了显示GrapeCity ActiveReports AR15之外,我正在创建的网站工作正常。包含他们的web查看器的网页打开得很好,

我正在使用c#在asp.net vs2015中开发一个应用程序,开发环境是Win10Pro机器。我可以使用各种方法中的任何一种来获取工作目录,并查看dev pc上是否存在特定的文件,但Web服务器上不存在。我已经尝试了下列方法:

所有这些都在Dev PC上工作,但在Web服务器上使用时,它不会返回工作目录。该服务器是使用IIS10的2016数据服务器。问题是,除了显示GrapeCity ActiveReports AR15之外,我正在创建的网站工作正常。包含他们的web查看器的网页打开得很好,正在查找报告文件(MyReport.rdlx)。global.aspx文件指向根目录,但当web viewer打开时,它表示找不到文件。我完全不知道,技术支持也不确定。这是否是一个IIS问题,阻止代码查找和验证文件是否存在?任何方向都将不胜感激。这是非常令人沮丧和耗时的。
AppDomain.CurrentDomain.BaseDirectory
不起作用,
HttpRuntime.AppDomainAppPath
与其他所有目录一样不起作用。请求返回为空白

string filename = AppDomain.CurrentDomain.BaseDirectory.ToString() +"SPU01_Dates.rdlx";
if (File.Exists(filename))
{
    Response.Write("YES");
}
else
{

    Response.Write("NO");
    Response.Write("</br");
    Response.Write(filename);
}
string filename=AppDomain.CurrentDomain.BaseDirectory.ToString()+“SPU01_Dates.rdlx”;
if(File.Exists(filename))
{
回答。写下(“是”);
}
其他的
{
答复。填写(“否”);
写(“试试这段代码

if (File.Exists(Server.MapPath(filename)))

试试这个代码

if (File.Exists(Server.MapPath(filename)))


在我的测试中,它返回YES并且运行良好。您是否将“SPU01_Dates.rdlx”文件放在根文件夹中

在开发环境中,它返回YES,当我将其部署到IIS时,它返回NO。我发现在部署过程中,rdlx文件没有与项目一起部署,因此我在部署的文件夹中重新创建了一个rdlx文件,它返回YES


测试证明AppDomain.CurrentDomain.BaseDirectory是获取文件路径的最准确的方法。当您在IIS中测试此代码时,它是否返回“否”或“空”?返回“空”表示此代码段尚未执行。

在我的测试中,它返回“是”,并且运行良好。您是否将“SPU01_Dates.rdlx”文件放在根文件夹中

在开发环境中,它返回YES,当我将其部署到IIS时,它返回NO。我发现在部署过程中,rdlx文件没有与项目一起部署,因此我在部署的文件夹中重新创建了一个rdlx文件,它返回YES


测试证明AppDomain.CurrentDomain.BaseDirectory是获取文件路径的最准确的方法。当您在IIS中测试此代码时,它是否返回“否”或“空”?返回“空”表示此代码段尚未执行。

我希望它返回“否”
,并带有一个损坏的
br
标记和
文件名
。谢谢谢谢大家的评论。我找到了答案。我试图映射目录和文件的页面没有使用包含网站母版页的网页。我将该页面重新创建为内容页面后,它就工作了。再次感谢大家。我希望它返回
,带有一个损坏的
br
标记和
文件名谢谢大家的评论。我找到了答案。我试图映射目录和文件的网页没有使用包含网站母版页的网页。我将该网页重新创建为内容页后,它就工作了。再次感谢大家。