. net WCF服务无法访问本地文件
本文关键字:文件 访问 WCF 服务 net | 更新日期: 2023-09-27 18:16:00
看了很多话题后,我决定问这个
我有一个从本地文件系统读取文件的WCF服务。当服务在我的电脑上进行本地测试时,这样做没有问题。
但是当我在IIS8中发布服务时,我得到了这个错误
系统找不到指定的文件
我已经尝试创建一个新的用户和新的应用程序池,使用该身份来运行服务,并给予完全控制,试图读取文件夹,但问题继续。
我甚至尝试使用管理员作为新应用程序池的身份,但也没有解决问题
假设您有一个相对URL,并且运行应用程序的帐户具有适当的权限,那么您可能无法获得正确的文件路径名。
你可以尝试像这样找到你的文件的完整路径:
using System.IO;
public FileInfo GetFileInfo(string filename)
{
if(filename == null)
throw new ArgumentNullException("filename");
FileInfo info = new FileInfo(filename);
if(!Path.IsPathRooted(filename) && !info.Exists)
{
string[] paths = {
Environment.CurrentDirectory,
AppDomain.CurrentDomain.BaseDirectory,
HostingEnvironment.ApplicationPhysicalPath,
};
foreach(var path in paths)
{
if(path != null)
{
string file = null;
file = Path.Combine(path, filename);
if(File.Exists(file))
{
return new FileInfo(file);
}
}
}
}
throw new FileNotFoundException("Couldn not find the requested file", filename);
}
它返回一个System.IO.FileInfo的实例,但是你可以很容易地调整它来返回一个字符串(完整的路径名)