如何解决Web Services出现System.UnauthorizedAccessExcepti

简介: 如何解决Web Services出现System.UnauthorizedAccessException异常 刑天 发表于 2006-10-28 00:17:57 当处理有关文件流的web服务的时候,调试时出现异常:System.UnauthorizedAccessException: Access to the path 'some file path' is denied.    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 没有文件的访问权限。

如何解决Web Services出现System.UnauthorizedAccessException异常

刑天 发表于 2006-10-28 00:17:57

当处理有关文件流的web服务的时候,调试时出现异常:
System.UnauthorizedAccessException: Access to the path 'some file path' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
没有文件的访问权限。解决办法有二:
1.在 web.config 文件的 system.web>节点里添加一行:
这个userName和password就是asp.net做访问的身份,在IIS里可以看到。
2.在 web.config 文件的 system.web>节点里添加一行:
然后对你要操作的文件目录增加用户,也就是ASP.net的用户,一般都是“IUSER_computerName ”,不清楚的话,可以从IIS里copy出来。
第一个的优点在于一劳永逸,以后文件目录变了也没事;后者的长处在于直接增加用户就可以了,尤其在密码不清楚的情况下。
 
一个文件流操作的web服务的例子:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
 
 
///
/// Summary description for WebService
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
 
    public WebService()
    {
 
        //Uncomment the following line if using designed components
        //InitializeComponent();
    }
 
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
    public struct WebFile
     {
         public string Name;
         public byte[] Contents;
         public DateTime    CreationTime;
         public DateTime    LastAccessTime;
         public DateTime    LastWriteTime;
     }
 
     ///
     /// Summary description for Service1.
     ///
     public class WebDirectory : System.Web.Services.WebService
     {
         public WebDirectory()
         {
              //CODEGEN: This call is required by the ASP.NET Web Services Designer
              InitializeComponent();
         }
 
         #region Component Designer generated code
        
         //Required by the Web Services Designer
         private IContainer components = null;
                  
         ///
         /// Required method for Designer support - do not modify
         /// the contents of this method with the code editor.
         ///
         private void InitializeComponent()
         {
         }
 
         ///
         /// Clean up any resources being used.
         ///
         protected override void Dispose( bool disposing )
         {
              if(disposing && components != null)
              {
                   components.Dispose();
              }
              base.Dispose(disposing);        
         }
        
         #endregion
 
         // WEB SERVICE EXAMPLE
         // The HelloWorld() example service returns the string Hello World
         // To build, uncomment the following lines then save and build the project
         // To test this web service, press F5
 
//       [WebMethod]
//       public string HelloWorld()
//       {
//            return "Hello World";
//       }
 
         [WebMethod]
         public string[] ListFiles()
         {
              return Directory.GetFiles("c:\Public");
         }
    
         [WebMethod]
         public WebFile GetFile(string fileName)
         {
              WebFile webFile = new WebFile();
              string   filePath = "c:\Public\" + fileName;
 
              // Set the name of the file.
              webFile.Name = fileName;
           
              // Obtain the contents of the requested file.
              Stream        s = File.Open(filePath, FileMode.Open);
              webFile.Contents = new byte[s.Length];
              s.Read(webFile.Contents, 0, (int)s.Length);
 
              // Retrieve the date/time stamps for the file.
              webFile.CreationTime = File.GetCreationTime(filePath);
              webFile.LastAccessTime = File.GetLastAccessTime(filePath);
              webFile.LastWriteTime = File.GetLastWriteTime(filePath);
 
              return webFile;
         }
     }
}
 
客户端,控制台应用程序
using System;
using System.IO;
using WebFileUtil.localhost;
 
namespace WebFileUtil
{
    public class WebFileUtil
    {
        static int Main(string[] args)
        {
            // Validate number of command line arguments.
            if (!((args.Length == 1 && args[0].ToUpper() == "DIR") ||
                (args.Length >= 2 && args.Length
            {
                DisplayUsage();
                return 64;
            }
 
            // Initialize source and destination variables.
            string source = null;
            string destination = null;
            if (args.Length > 1)
            {
                source = args[1];
                destination = source;
 
                if (args.Length == 3)
                {
                    destination = args[2];
                }
            }
 
            // Process command.
            switch (args[0].ToUpper())
            {
                case "DIR":
                    ListFiles();
                    break;
                case "GET":
                    GetFile(source, destination);
                    break;
                default:
                    DisplayUsage();
                    break;
            }
 
            return 0;
        }
 
        private static void ListFiles()
        {
            WebDirectory webDir = new WebDirectory();
            string[] files;
 
            files = webDir.ListFiles();
            foreach (string file in files)
            {
                Console.WriteLine(file);
            }
 
            Console.WriteLine("\n{0} file(s) in directory.", files.Length);
        }
 
        private static void GetFile(string source, string destination)
        {
            WebDirectory webDir = new WebDirectory();
            WebFile webFile = new WebFile();
 
            // Retrieve the requested file and then save it to disk.
            webFile = webDir.GetFile(source);
 
            // Save the retrieved web file to the file system.
            FileStream fs = File.OpenWrite(destination);
            fs.Write(webFile.Contents, 0, webFile.Contents.Length);
            fs.Close();
 
            // Set the date/time stamps for the file.
            File.SetCreationTime(destination, webFile.CreationTime);
            File.SetLastAccessTime(destination, webFile.LastAccessTime);
            File.SetLastWriteTime(destination, webFile.LastWriteTime);
        }
 
        private static void DisplayUsage()
        {
            Console.WriteLine("WebFile is used to send and retrieve files from the WebDirectory web service.");
            Console.WriteLine("\nUsage: WebFile command source [destination]");
            Console.WriteLine("\tcommand     - Either DIR or GET.");
            Console.WriteLine("\tsource      - The the name of the file to either retrieve or send.");
            Console.WriteLine("\tdestination - Optionally the name of the destination file.");
            Console.WriteLine("\nExamples:");
            Console.WriteLine("\tWebFile GET somefile.exe");
            Console.WriteLine("\tWebFile GET somefile.exe c:\temp");
            Console.WriteLine("\tWebFile GET somefile.exe c:\temp\myfile.exe");
        }
    }
}
VS2005测试通过。
[reference]“ Building XML Web Services –For The Microsoft.NET Platform”(Scott Short)-- 构建 XML Web 服务 —— 基于 Microsoft .NET 平台
目录
相关文章
|
6月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
449 3
|
6月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
6月前
|
机器学习/深度学习 开发工具 对象存储
视觉智能平台常见问题之web端编辑器实现如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
6月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
127 0
|
6月前
|
前端开发 JavaScript API
阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
【1月更文挑战第15天】【1月更文挑战第72篇】阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
170 6
|
XML Java 数据格式
大多数人忽略了的Spring官方项目,Spring Web Services
大多数人忽略了的Spring官方项目,Spring Web Services
1299 0
|
24天前
|
XML 关系型数据库 MySQL
Web Services 服务 是不是过时了?创建 Web Services 服务实例
本文讨论了WebServices(基于SOAP协议)与WebAPI(基于RESTful)在开发中的应用,回顾了WebServices的历史特点,比较了两者在技术栈、轻量化和适用场景的差异,并分享了使用VB.net开发WebServices的具体配置步骤和疑问。
18 0
|
5月前
|
XML 前端开发 JavaScript
RESTful Web Services
RESTful Web Services
45 2
|
6月前
|
存储 Serverless 网络安全
Serverless 应用引擎产品使用之阿里云函数计算中的Web云函数可以抵抗网站对DDoS攻击如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Ubuntu Linux 网络安全
在Amazon Web Services中使用R语言运行模拟
在Amazon Web Services中使用R语言运行模拟
下一篇
无影云桌面