在 Windows 2003 上调用写入本地驱动器上的文件的 Web 服务方法时,我收到此错误。
“System.Security.SecurityException:请求类型为‘System.Security.Permissions.FileIOPermission,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089’的权限失败。”
我已完成以下步骤:
那么为什么这个 Web 服务仍然抱怨 FileIOPermission? Fulltrust 包括 FileIOPermission。
经过大量故障排除后,问题归结为我在 web.config 中犯的一个错误,其中位置标记的路径为 www.example.com,但在 IIS 中却是 example.com!
终于找到问题所在了。在 Windows 中构建文件后,我们将它们放入 zip 文件中。将文件添加到 zip 窗口时,会为解压缩文件夹后保留的所有文件添加阻止属性。这些导致文件无法正常运行。可以通过右键单击文件(一次一个),选择“属性”,然后单击底部的“取消阻止”按钮来删除“阻止”属性。这是示例图片:
https://www.howtogeek.com/wp-content/uploads/2011/08/image10.png
为了防止 Windows 添加此阻塞属性,可以查看以下线程:
我在遗留系统中遇到了同样的问题,我必须对其进行一些小的更改。最终。我发现这是由我替换的 DLL 文件上的“块”引起的。 DLL 中的逻辑运行得很完美,直到 .NET 遇到了可能需要 CAS 的东西(例如 fileIOPermission),即使信任已满,CAS 未启用......甚至使用 CASPOL 禁用 CAS。但你仍然遇到这个错误。
奇怪的是,运行时确实允许阻塞文件中的业务逻辑。但如果有人遇到这个...还有另一个可能的原因。