.net网站只有把iis应用程序池设置为本地系统才能运行

时间:2022-04-11 15:26:03
如题。.net网站只有把iis应用程序池设置为本地系统才能运行,这是为什么呢,为什么网络服务用户不能运行网站。好奇怪的问题,求解 .net网站只有把iis应用程序池设置为本地系统才能运行,iis应用程序池设置为本地系统是不是很容易被黑啊?

12 个解决方案

#1


.net网站只有把iis应用程序池设置为本地系统才能运行设置下,让他自动回收吧!我也不懂。求散分

#2


引用 1 楼 mp0258463 的回复:
.net网站只有把iis应用程序池设置为本地系统才能运行设置下,让他自动回收吧!我也不懂。求散分
不关那个的事,在其他服务器上能用其他IIS程序池帐号执行,就唯独那台服务器,但是那台服务器又不能动其他的东西,我怀疑和框架集有关。

#3


该回复于2014-03-16 08:57:42被版主删除

#4


你可以在IIS里新建一个程序池给这个web站点,这个应该是网站的安全需要,之前写过一个B2B的交易平台,他的银行付款插件都是要求更改IIS的进程模型里的标识,也从问过几个银行的技术人员,都说是为了安全。

#5


引用 4 楼 wuzhengqing1 的回复:
你可以在IIS里新建一个程序池给这个web站点,这个应该是网站的安全需要,之前写过一个B2B的交易平台,他的银行付款插件都是要求更改IIS的进程模型里的标识,也从问过几个银行的技术人员,都说是为了安全。
"查看事件查看器",于是我进了查看器查找,发现了如下2个错误提示:
1:由于无法创建应用程序域,因此未能执行请求。错误:   0x80070005   拒绝访问。 
2:未能初始化   AppDomain:/LM/W3SVC/1635210705/Root   
     Exception:   System.IO.FileLoadException   
   Message:   未能加载文件或程序集“System.Web,   Version=2.0.0.0,   Culture=neutral,   PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。   
   StackTrace:         在   System.Reflection.Assembly.nLoad(AssemblyName   fileName,   String   codeBase,   Evidence   assemblySecurity,   Assembly   locationHint,   StackCrawlMark&   stackMark,   Boolean   throwOnFileNotFound,   Boolean   forIntrospection)   
         在   System.Reflection.Assembly.InternalLoad(AssemblyName   assemblyRef,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)   
         在   System.Reflection.Assembly.InternalLoad(String   assemblyString,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)   
         在   System.Activator.CreateInstance(String   assemblyName,   String   typeName,   Boolean   ignoreCase,   BindingFlags   bindingAttr,   Binder   binder,   Object[]   args,   CultureInfo   culture,   Object[]   activationAttributes,   Evidence   securityInfo,   StackCrawlMark&   stackMark)   
         在   System.Activator.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters)   
         在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters)   

         于是又google了下"由于无法创建应用程序域,因此未能执行请求。错误:   0x80070005   拒绝访问。",查到了一下解决方案:
1:
安装2.0之后,在IIS的虚拟目录的属性设置中会多出一个ASP.NET标签,在那里边把运行时调整为2.0,默认使用的是1.1的运行时。  

2:
这个是权限问题,   
   首先检查应用程序池的属性,看看它是以什么用户身份运行的,一般是NETWORK   SERVICE   然后确保这个用户对.NET   Framework   2.0的目录有访问权限,事实上应该是有的。目录是systemroot:\Windows\Microsoft.NET\Frameworks\2.0.xxxx   
     
   如果以上两条都对,很不幸,你遇到了一个很奇怪的问题,我上次是把应用程序池的用户身份改成本地系统来运行的。

按照第二种解决方案配置:  把运行池的访问用户设置为"本地系统", 然后运行程序, 错误没在出现, 成功解决, 但是但在我选则"本地系统"时,IIS提示会有安全问题,但是我就遇到了这么奇怪的问题,但是在其他服务器上都没这样的问题?在这台服务器上又不能改这些配置。是不是框架集的原因

#6


选择了IIS框架集版本2.0运行,显示服务器不可用

#7


是的,貌似这个要4.0的框架的

#8


引用 7 楼 wuzhengqing1 的回复:
是的,貌似这个要4.0的框架的
安装了4.0框架也不行,还是需要设置标识啊

#9


我也遇到跟你一样的情况,不过我的是有时常常不能保存数据,保存超时。过了一段时间后又恢复正常,第二天又是一样!折腾了好久

#10


好像设置为本地服务也可以运行,但我这边是一个打印报表(用VB编写的控件)会出现问题,

#11


楼主解决没?我也遇到同样的问题?

#12


引用 11 楼 ou4564 的回复:
楼主解决没?我也遇到同样的问题?

解决了 ,网站文件权限的问题,还有应用池的权限回收,调好这2个部分都可以了

#1


.net网站只有把iis应用程序池设置为本地系统才能运行设置下,让他自动回收吧!我也不懂。求散分

#2


引用 1 楼 mp0258463 的回复:
.net网站只有把iis应用程序池设置为本地系统才能运行设置下,让他自动回收吧!我也不懂。求散分
不关那个的事,在其他服务器上能用其他IIS程序池帐号执行,就唯独那台服务器,但是那台服务器又不能动其他的东西,我怀疑和框架集有关。

#3


该回复于2014-03-16 08:57:42被版主删除

#4


你可以在IIS里新建一个程序池给这个web站点,这个应该是网站的安全需要,之前写过一个B2B的交易平台,他的银行付款插件都是要求更改IIS的进程模型里的标识,也从问过几个银行的技术人员,都说是为了安全。

#5


引用 4 楼 wuzhengqing1 的回复:
你可以在IIS里新建一个程序池给这个web站点,这个应该是网站的安全需要,之前写过一个B2B的交易平台,他的银行付款插件都是要求更改IIS的进程模型里的标识,也从问过几个银行的技术人员,都说是为了安全。
"查看事件查看器",于是我进了查看器查找,发现了如下2个错误提示:
1:由于无法创建应用程序域,因此未能执行请求。错误:   0x80070005   拒绝访问。 
2:未能初始化   AppDomain:/LM/W3SVC/1635210705/Root   
     Exception:   System.IO.FileLoadException   
   Message:   未能加载文件或程序集“System.Web,   Version=2.0.0.0,   Culture=neutral,   PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。   
   StackTrace:         在   System.Reflection.Assembly.nLoad(AssemblyName   fileName,   String   codeBase,   Evidence   assemblySecurity,   Assembly   locationHint,   StackCrawlMark&   stackMark,   Boolean   throwOnFileNotFound,   Boolean   forIntrospection)   
         在   System.Reflection.Assembly.InternalLoad(AssemblyName   assemblyRef,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)   
         在   System.Reflection.Assembly.InternalLoad(String   assemblyString,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)   
         在   System.Activator.CreateInstance(String   assemblyName,   String   typeName,   Boolean   ignoreCase,   BindingFlags   bindingAttr,   Binder   binder,   Object[]   args,   CultureInfo   culture,   Object[]   activationAttributes,   Evidence   securityInfo,   StackCrawlMark&   stackMark)   
         在   System.Activator.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)   
         在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters)   
         在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters)   

         于是又google了下"由于无法创建应用程序域,因此未能执行请求。错误:   0x80070005   拒绝访问。",查到了一下解决方案:
1:
安装2.0之后,在IIS的虚拟目录的属性设置中会多出一个ASP.NET标签,在那里边把运行时调整为2.0,默认使用的是1.1的运行时。  

2:
这个是权限问题,   
   首先检查应用程序池的属性,看看它是以什么用户身份运行的,一般是NETWORK   SERVICE   然后确保这个用户对.NET   Framework   2.0的目录有访问权限,事实上应该是有的。目录是systemroot:\Windows\Microsoft.NET\Frameworks\2.0.xxxx   
     
   如果以上两条都对,很不幸,你遇到了一个很奇怪的问题,我上次是把应用程序池的用户身份改成本地系统来运行的。

按照第二种解决方案配置:  把运行池的访问用户设置为"本地系统", 然后运行程序, 错误没在出现, 成功解决, 但是但在我选则"本地系统"时,IIS提示会有安全问题,但是我就遇到了这么奇怪的问题,但是在其他服务器上都没这样的问题?在这台服务器上又不能改这些配置。是不是框架集的原因

#6


选择了IIS框架集版本2.0运行,显示服务器不可用

#7


是的,貌似这个要4.0的框架的

#8


引用 7 楼 wuzhengqing1 的回复:
是的,貌似这个要4.0的框架的
安装了4.0框架也不行,还是需要设置标识啊

#9


我也遇到跟你一样的情况,不过我的是有时常常不能保存数据,保存超时。过了一段时间后又恢复正常,第二天又是一样!折腾了好久

#10


好像设置为本地服务也可以运行,但我这边是一个打印报表(用VB编写的控件)会出现问题,

#11


楼主解决没?我也遇到同样的问题?

#12


引用 11 楼 ou4564 的回复:
楼主解决没?我也遇到同样的问题?

解决了 ,网站文件权限的问题,还有应用池的权限回收,调好这2个部分都可以了