在WCF服务中读取xml文件时出现问题

时间:2009-09-02 09:37:04

标签: c# wcf wcf-binding

WCF服务有一个方法(比如说TestMethod),我尝试在其中创建这样的文件流:

            System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open);

我的客户端和服务采用相同的解决方案。

当客户端调用TestMethod(在Web服务中公开)时,它将给出以下错误:

拒绝访问路径'D:\ DXDirectoryAuth.xml'。

请帮助!!

3 个答案:

答案 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中。

奥利