尝试从Web服务写入文件时获取System.UnauthorizedAccessException

时间:2010-12-21 00:17:39

标签: web-services security file-io

我的代码:

[WebMethod]
        public string HelloWorld()
        {
            string path = @"D:\Data\wwwroot\MyService\MyService\log.txt";
            if (File.Exists(path))
            {
                using (StreamWriter sw = new StreamWriter(path))
                {
                    sw.Write("Some sample text for the file");
                    return "wrote to a file";
                }
            }
            else
            {
                return "file doesnt exist";
            }

        }

我得到的是: System.UnauthorizedAccessException:拒绝访问路径'D:\ Data \ wwwroot \ MyService \ MyService \ log.txt'。    在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)    at System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions options,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy)    在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项)    在System.IO.StreamWriter.CreateFile(String path,Boolean append)    在System.IO.StreamWriter..ctor(String path,Boolean append,Encoding encoding,Int32 bufferSize)    在System.IO.StreamWriter..ctor(String path)    位于D:\ Data \ wwwroot \ MyService \ MyService \ Service.asmx.cs中的LinkTagOutWebService.Service1.HelloWorld():第29行

我需要的任何安全设置?日志文件设置为红色/写入....

1 个答案:

答案 0 :(得分:2)

问题解决了,这是一个权限问题。您必须授予IIS用户您的应用程序在写入文件的权限下运行。