0

我有一个旨在管理 www.example.com 上的小公司的应用程序。我们还有一个演示站点,潜在客户可以在 www.example.com/demo 上查看该系统的工作原理。example.com 网站运行完美,但是当尝试通过演示系统读取/写入位于 www.example.com/demo/fileHere 的文件时,我不断收到此错误:

[SecurityException: Request for the permission of type System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]

我尝试将 app.config 应用设置更改为:

<appSettings file="./demo" /> 

...但这并没有解决它。

任何解决方案或帮助将不胜感激。 我试图避免为演示站点提供自己的域。

4

3 回答 3

1

您收到该异常是因为您正在执行的程序集无权在所需位置进行读/写。

于 2012-07-27T16:13:52.870 回答
0

乔恩,

您是否尝试过更明确的语法,即:

<appSettings>
  <add key="file" value="http://www.example.com/demo/"/>
</appSettings>

应该没有赔率,但值得一试。但是,我觉得在这种情况下,IIS 无法使用外部资源是一个问题。

于 2012-07-27T16:20:14.627 回答
0

通过将这行代码更改为:

string path = Path.Combine(@"/MyFile/", ViewBag.Name + "/" + file.Name);

到:

string path = Path.Combine("~/MyFile/", ViewBag.Name + "/" + file.Name);

我可能是错的,但似乎子域在使用 @"/MyFile/ 时试图从父域打开文件。通过将其替换为 "~/MyFile/" 应用程序指向正确的目录,不再抛出例外。

于 2012-07-27T16:56:31.620 回答