clr里能读写文件吗?
请教各位大大clr里能读写文件吗? 比如在clr里用:FileStream aFile = new FileStream("e:\\test.txt", FileMode.OpenOrCreate);我测试会报错误,是权限问题么? --------------------编程问答-------------------- 用绝对路径恐怕有问题 --------------------编程问答-------------------- 啊,不用绝对路径怎么写啊,说穿了这个就是个SQL --------------------编程问答-------------------- 当然可以,报什么错?--------------------编程问答-------------------- 消息 6522,级别 16,状态 1,过程 LOHO_RendomNum,第 0 行
在执行用户定义例程或聚合 'LOHO_RendomNum' 期间出现 .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)
at StoredProcedures.LOHO_RendomNum(Int32 count, Int32 type)
。 --------------------编程问答-------------------- 关是建一个FileStream 的对象就会报错 --------------------编程问答-------------------- 你的IIS帐号恐怕没有往根目录写的权限。 --------------------编程问答-------------------- 什么错误信息? --------------------编程问答-------------------- 应该是权限问题,你换一个目录试试看 --------------------编程问答-------------------- 7楼的错误信息我上面贴了,直接用C#写的话不会出错 --------------------编程问答-------------------- 。。。明显是权限问题
增加权限看看 --------------------编程问答-------------------- 楼上的如何增加啊?把这个txt增加修改权限? --------------------编程问答-------------------- 大家帮忙看看测试程序就这样:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcedure2()
{
FileStream aFile = new FileStream("e:\\test.txt", FileMode.OpenOrCreate);
aFile.Close();
aFile.Dispose();
}
错误信息:消息 6522,级别 16,状态 1,过程 StoredProcedure2,第 0 行
在执行用户定义例程或聚合 'StoredProcedure2' 期间出现 .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)
at StoredProcedures.StoredProcedure2()
。
我把test.txt文件修改权限都加了,连guest都加上了还是不行。 --------------------编程问答-------------------- 你的硬盘是否ntfs格式?
要是ntfs的话,跟目录下只能用管理员创建文件. --------------------编程问答-------------------- MARK --------------------编程问答-------------------- 那我把它改为非根目录,比如e:\\test\\test.txt应该如何修改权限啊? --------------------编程问答-------------------- 选择你硬盘上的e:\test这个目录
右键->属性->安全
添加你的这个程序运行时候的用户,然后选择完全控制 --------------------编程问答-------------------- 呵呵,这个我当然知道,因为这是clr到底应该改哪个用户啊?(恕我愚钝,执行SQL应该是哪个用户)IIS用户是没问题的,因为单独用C#读写文件没问题。 --------------------编程问答-------------------- sql2005?? --------------------编程问答-------------------- 是啊,不然怎么有clr
--------------------编程问答-------------------- 哪位大哥能帮我在clr里测试下啊,我再加分都可以,感谢 --------------------编程问答-------------------- 用filemon看到底是哪个用户
不过你为什么要在你的网站之外的位置写东西?
补充:.NET技术 , C#