我们已将现有应用程序放入使用IIS 7.5的新R2服务器.
现在一切正常,应用程序可以写入它的文件夹...但是我们想知道如何...新的IIS附带IIS应用程序池身份故事,为每个应用程序创建一个新的虚拟用户,所以它已经完成了这个.
在文档中声明必须将此用户分配给文件夹才能使一切正常工作......但在我们的情况下,它不是?!它仍然有效,通过该用户的应用程序可以访问?
在论坛的某个地方有人提到这是因为在完全信任下运行的应用程序可以在任何地方写任何东西......但这没有意义吗?在我所知道的CAS中没有处理这个问题?
因此,在IIS 7.5下,具有自己的池的应用程序如何具有写入权限,而不是在该文件夹的安全设置下?
弗拉丹
我开发了一个.net 3.0应用程序,它使用clickonce部署.
我想从完全信任转向部分信任以简化部署.
我在visual studio的项目"安全"选项卡中尝试了"计算权限"工具,答案非常明确:
---------------------------
Microsoft Visual Studio
---------------------------
This application requires full trust to run correctly.
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚为什么需要完全信任.我试图将安全设置更改为"部分信任",但应用程序在启动时立即引发SecurityException:
System.Security.SecurityException {"Request failed.", Action= "System.Security.Permissions.SecurityAction.LinkDemand"
at MyNameSpace.Program.Main(String[] args)
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
at System.Activator.CreateInstance(ActivationContext activationContext)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, …Run Code Online (Sandbox Code Playgroud)