这是IIS 7.5和ASP.NET的一个问题,我一直在研究和无处可去.任何帮助将不胜感激.
我的问题是:在IIS 7.5中使用ASP.NET,IIS和/或操作系统如何允许Web应用程序写入文件夹,就像C:\dump在完全信任下运行一样?我怎么没有为应用程序池用户显式添加写访问权限(在这种情况下ApplicationPoolIdentity)?
我知道的很多:
ApplicationPoolIdentity.ApplicationPoolIdentity 表示名为"IIS APPPOOL\AppPoolName"的Windows用户帐户,该帐户在创建应用程序池时创建,其中AppPoolName是应用程序池的名称.IIS_IUSRS组的成员.C:\Users,C:\Windows等等).例如,您的应用程序将有权写入某些文件夹,例如C:\dump.IIS_IUSRS组不会获得读取或写入访问权限C:\dump(至少不能通过Windows资源管理器中的"安全"选项卡显示该访问权限).IIS_IUSRS,则在尝试写入文件夹时会出现SecurityException(如预期的那样).因此,考虑到所有这些,如何授予"IIS APPPOOL\AppPoolName"用户写入权限?w3wp.exe进程以此用户身份运行,那么是什么允许此用户写入它似乎没有显式访问权限的文件夹?
请注意,我理解这可能是为了方便起见,因为如果您在完全信任下运行,授予用户访问它需要写入的每个文件夹将是一件痛苦的事.如果要限制此访问权限,则始终可以在"中等信任"下运行该应用程序.我有兴趣了解操作系统和/或IIS允许这些写入的方式,即使似乎没有授予显式文件系统访问权限.
我有一个新的Win7工作站,我正在尝试让ScrewTurn Wiki在机器上运行.我的STW安装使用文件系统选项来存储其数据,因此我需要为安装网站的文件夹中的ASP.NET辅助进程提供写入权限.
但是,我似乎无法在Win7中提出工作进程的名称,以便将其添加到文件夹的权限.在XP中它是ASPNET_WP,如果我没记错的话,但这不是它在Win7中的名字.
有人可以告诉我吗?
编辑添加:
回应@Dragan_Radivojevic,这是所讨论的应用程序池的样子(名为ScrewTurnWiki):

身份是"ApplicationPoolIdentity"
我的MVC 4应用程序在我的本地计算机上运行正常.
但是,我发布后CSS文件不起作用(不影响网站的布局).
我可以看到CSS文件在服务器上.
当我查看源代码时,我可以看到
<link href="/Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
在我的本地计算机上,源代码显示为
<link href="/Content/css/myFile.css" rel="stylesheet"/>
<link href="/Content/css/myFile02.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
所以,在服务器的源代码视图中,我点击了 Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1,浏览器将我带到403 - 禁止访问:访问被拒绝.
我正在使用BunldeConfig.cs类添加CSS文件
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
"~/Scripts/1.9.1.js",
"~/Scripts/jTools.js",
"~/Scripts/script.js"
));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Css/website.css",
"~/Content/Css/banner.css",
"~/Content/Css/reusable.css",
"~/Content/Css/lists.css",
"~/Content/Css/tooltip.css",
"~/Content/Css/overlay.css"
));
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,假设这不是服务器的IT问题(直到最近一直工作正常)我的代码有问题吗?
我有一个 .net 2.0 应用程序,已从 Windows Server 2003/IIS6 迁移到 Windows Server 2008/IIS7
此应用程序需要写入服务器上公共文件夹部分中的文件夹。我已授予以下全部权利:
ASP.NET 应用程序仍然无法写入该文件夹。该文件夹在 IIS 7 管理器中可见,并且存在于文件系统中。
每当我执行需要写入文件夹的应用程序部分时,我都会收到以下错误:

这在以前的服务器上工作得很好,但我不知道如何让它在新服务器上工作。请指教。