У меня есть веб-клиент, который отправляет запрос в виде XML на мой веб-сервер. Веб-сервер создает (довольно большой) файл, сохраняет его в кэшированном каталоге и возвращает его веб-клиенту через поток ответов. Это работало нормально первые пару раз, когда я пытался, но внезапно оно перестало работать и сообщило о следующем исключении (в XML):
<error type="System.Security.SecurityException">
<message>Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.</message>
<stack-trace><![CDATA[ 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, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)
at Ionic.Zip.SharedUtilities.CreateAndOpenUniqueTempFile(String dir, Stream& fs, String& filename)
at Ionic.Zip.ZipFile.get_WriteStream()
at Ionic.Zip.ZipFile.Save()
at Ionic.Zip.ZipFile.Save(String fileName)
at MyApplication.UpdateItemFiles.GetUpdateContent(XDocument a_xManifest, Stream[] a_arrExtraContent) in C:\Software\MyApplication\Alpha\Web Interface\UpdateItemFiles.aspx.cs:line 265
at MyApplication.UpdateItemFiles.Page_Load(Object sender, EventArgs e) in C:\Software\MyApplication\Alpha\Web Interface\UpdateItemFiles.aspx.cs:line 31]]></stack-trace>
</error>
Я мало что знаю о безопасности доступа к коду. Я даже пытался дать полный контроль над каталогом всем. Это не проблема, поскольку это сервер разработки, а не публичный компьютер. Я не понимаю, почему это сработало бы первые пару раз, но перестань работать сейчас.
Я использую 64-разрядную версию Visual Studio 2008 для Windows 7 как для сервера, так и для клиента (на одной машине). Я использую IIS 7.0 и .Net Framework 3.5.
Отредактировано 2010/12/13 16:05 EST:
Я получаю эту ошибку, потому что я использую библиотеку DotNetZip из Codeplex. Есть ли способ добавить сборку в IIS или мою конфигурацию?