WCF服务有一个方法(比如说TestMethod),我尝试在其中创建这样的文件流:
System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open);
我的客户端和服务采用相同的解决方案。
当客户端调用TestMethod(在Web服务中公开)时,它将给出以下错误:
拒绝访问路径'D:\ DXDirectoryAuth.xml'。
请帮助!!
答案 0 :(得分:8)
好的,如果您已将文件放在WCF服务的目录或子目录中,则应该能够访问该文件而不会出现任何权限问题。
问题是您是如何尝试访问该文件的?
您应该获取服务的当前目录,然后将相对文件位置附加到当前目录,然后尝试打开这样的文件:
var appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
bodyFile = Path.Combine(appPath, @"templates\email.txt");
var body = File.OpenText(bodyFile).ReadToEnd();
HTH
奥利
答案 1 :(得分:3)
你试过了吗?
System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open, System.IO.FileAccess.Read);
FileStream()的默认构造函数请求读写访问。
答案 2 :(得分:0)
安全!
原因是您正在尝试访问托管WCF服务的目录之外的文件位置...
您要么必须根据该目录的权限授予WCF运行的帐户,要么将该文件移动到您托管WCF服务的目录\ sub-directory中。
奥利