首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL2005 出现 System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0

2012-03-11 
SQL2005 出现 System.Security.Permissions.FileIOPermission, mscorlib, Version2.0.0.0在vs2005下编写

SQL2005 出现 System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0
在vs2005下编写的存储过程代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Xml;
public partial class StoredProcedures
{
  [Microsoft.SqlServer.Server.SqlProcedure]
  public static void StoredProcedure1()
  {
  SqlConnection cnn = new SqlConnection("context connection=true");
  cnn.Open();
  SqlCommand cmd = new SqlCommand();
  cmd.Connection = cnn;
  cmd.CommandText = "select * from UserTest for xml raw('pesron')";
  XmlReader xr = cmd.ExecuteXmlReader();
  DataSet ds = new DataSet();
  ds.ReadXml(xr);
  ds.WriteXml("d://wu.xml");
  }
};

在sql2005下执行该存储过程时,出现以下错误:
消息 6522,级别 16,状态 1,过程 StoredProcedure1,第 0 行
在执行用户定义例程或聚合 'StoredProcedure1' 期间出现 .NET Framework 错误: 
System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
System.Security.SecurityException: 
  at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
  at System.Security.CodeAccessPermission.Demand()
  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)
  at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
  at System.Xml.XmlTextWriter..ctor(String filename, Encoding encoding)
  at System.Data.DataSet.WriteXml(String fileName, XmlWriteMode mode)
  at System.Data.DataSet.WriteXml(String fileName)
  at StoredProcedures.StoredProcedure1()

谢谢!

[解决办法]
对I/O有访问权限,如果是Vista或者Windows 2008,可以使用“管理员”打开VS2005看看呢,需要提升权限
[解决办法]
Request for the permission of type 'System.Security.Permissions.FileIOPermission

--
这一句说得够明白了

热点排行