thanks 博主的提示 问题解决
给x:\windows\Temp 添加 Network Service 写入权限 搞定
Re:C#MD5加密解密 Jack.G 2010-01-26 17:22
DESCryptoServiceProvider
DESC?
Re:C#MD5加密解密 Jack.G 2010-01-26 17:22
DESCryptoServiceProvider
DESC?
不知楼主有没有试过
第一次加载没什么问题
加载完后然后刷新页面会提示未知名错误
re: [转]WindowsCE目录解析 lxykernel 2007-07-17 16:11
刚开始学WinCE,写得不错,借用一下:lxykernel.blogl.163.com
多表查询出对象表Det:
IList lst =s.Find(" select s from Det s left outer join s.CargoCKCargo as t where CKBillID='"+CKBillID+"' order by t.Name");
各位在同一电脑上同时安装并运行.net 1.1 和 .net 2.0 两个版本的朋友要小心啊!
您的项目是不是时不时会出现 Server Application Unavailable 错误呢?或者一直连续都出这个错误!
今天我朋友将其从1.1升级至2.0的项目发布至公司安装有windows 2003的服务器上,结果2.0的项目始终无法成功运行。甚至还造成服务器上正在为全公司服务的基于.net Framework 1.1的web程序出错。他感觉很奇怪,在自己电脑上明明运行的很好啊,怎么一到服务器上就不行了?
他发布2.0 web程序的过程如下:
1、在服务器上创建一个目录,然后将发布后的所有Web程序的文件复制到这个新建的目录。
2、在服务器的IIS上新建一个虚拟目录,然后 将其配置成可以执行脚本的应用程序,(过程与创建.net Framework 1.1版本的程序相同。) 然后,将此虚拟目录的.net Framework 配置成2.0。
大功告成后,开始访问刚配置的程序,却得到如下错误:
Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.
之后向我求助,经过仔细阅读了IIS帮助文档,才发现,原来这个错误是由 IIS6 应用程序隔离机制造成的。IIS默认的应用程序隔离机制被称为:“工作进程隔离模式”,在此模式中,应用程序被分为多个组,每个组就是一个“应用程序池” ,每个应用程序池之间是相互隔离的。 隔离的好处当然就是安全啦,稳定啦,等等。IIS中的每个应用程序池由一个“工作进程”分别进行管理,也就是"W3wp.exe" 。如果有多个应用程序池中的程序运行,我们就能看到多个w3wp.exe。 我们平时新建的虚拟目录都默认被指向IIS6的“DefaultAppPool" 中, 所以在默认情况下,不管你有多少个asp.net程序在运行,在“Windows任务管理器”中你只能看到一个w3wp.exe进程。
出现上述错误的原因是: .net Framework 2.0的程序与.net Framework1.1(或1.0)的程序被放入同一个应用程序池(默认情况下放入DefaultAppPool池),也就是由同一个工作进程: w3wp.exe 进行管理,而单个工作进程是无法同时管理不同的程序(或者不同版本的程序)的。如果先访问.net framework 1.1的页面,则工作进程先加载并管理了 1.1版本的程序集,此时访问.net framework 2.0的web程序页面,Server Application Unavailable 错误就出来了。 反之,如果在默认应用程序池的w3wp.exe尚未启动前先访问了 2.0的web程序(此时应用程序集已经加载了.net framework2.0的Web程序集),再访问1.1或1.0的Web程序页面时,同样会出现“服务器应用程序不可用” 这样的中文提示。(您可以结束掉以前的w3wp.exe进行测试。)
我朋友之所以在自己的开发机器上没出现此错误是因为他在开发基于.net framework 2.0的项目时,一直都只访问这个2.0的web程序,跟本未曾访问过其他web程序。而朋友的服务器上已经存在1.0 的项目,并且一直有人使用。这个错误在今天之前从未碰到过,其实大部分人在开发一个项目时,都只访问正在开发的项目。很有可能就忽略了这个问题,而到了发布的时候却出现错误,搞得手忙脚乱。
解决办法: 在IIS中新建一个应用程序池,然后选中你的 基于.net framework2.0的虚拟目录,点“属性”-》在“应用程序池” 中选择刚才新建的的应用程序池,点击“确定”。
如果你的电脑主要是为了学习,开发,测试web程序,完全可以建一个类似于名为"dotnet2.0"的应用程序池,以后所有新建的2.0的虚拟目录都指向此应用程序池。
[2006-03-16 更新] : 如果通地vs 2005IDE 直接创建在IIS 上创建Web Site时,vs 2005会自动添加 ASP.NET 2.0 应用程序池,并且将新创建的Web Size 虚拟目录指向新建的应用程序池。
发表于 2006-02-28 16:04 oo复oo 阅读(4743) 评论(28) 编辑 收藏 引用 网摘
评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
楼主好象结论下的过于早了,即使这样将来也会有问题出现的。呵呵~~微软的产品。
7275 评论于 2006-02-28 16:16 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
这也不能说微软的东东有啥问题。 作一些配置是必要的。至于将来的问题,我们都是凡人。
oo复oo 评论于 2006-02-28 16:22 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
哈,原来这样啊
我一直都是重启一下IIS才好,
多谢了
onekey 评论于 2006-02-28 16:25 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
不谢! 我也是今天才发现这个问题
在自己电脑上重启IIS也无所谓,只要能正常使用,但如果发布至服务器上就麻烦了。 如果你的服务器只运行2.0的web程序,那就无所谓了,不配置也可以。
oo复oo 评论于 2006-02-28 16:35 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
谢谢,学到了
Nomagic 评论于 2006-02-28 16:57 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗?
啊呀呀!
偶每次都是aspnet.regiis -r !搞的还有些担心生怕哪天又出状况!
Luna 评论于 2006-02-28 18:07 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
谢谢作者分享这个经验, 这是个容易被忽略的问题。
dudu 评论于 2006-02-28 19:43 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
我得机器装完2005自动创建了一个ASP.NET V2.0的应用程序池。
[天道酬勤] 评论于 2006-03-01 09:02 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
我得机器装完2005自动创建了一个ASP.NET V2.0的应用程序池。
[天道酬勤] 评论于 2006-03-01 09:02 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
这个经验很有价值,我们不久就可能遇到.谢谢分享.
知道得越多知道的越少 评论于 2006-03-01 09:51 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
如果在本地调试,不用IIS都可以呀,VS.NET2005自带一个本地服务器
spgoal 评论于 2006-03-01 15:06 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
@spgoal
就是本地调试没问题,发布之后才有问题的~
Boler Guo 评论于 2006-03-01 15:38 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
可算找到组织了,前些天服务器上发布了两个应用程序,一个是DNN3.2,基于framework 1.1的,另一个是基于framework2.0的web程序,结果就出现“Server Application Unavailable ”问题,调了好久,百思不得其解,今天才发现问题在这!多谢!
bbpnb 评论于 2006-03-01 17:21 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
在本地开发调试的时候当然没问题了,你用的是自带的一个 信息服务程序, 但一般人都会在发布程序后, 先在IIS上建一个把文件复制过去 测试一下。
其实问题的关键是你自己的开发时,只关注正在开发的系统,很少会去访问其他版本的系统。出现问题的机率很少。 但当你布署到服务器上就不一样了。 一般服务器都不可能只放一套系统,很可能会存在 其他版本的程序。 这样下来,问题就来了。而由于你一直没发现这个错误,跟本没准备,而且这个问题产生的原因很容易被忽视,在布署后,就显得非常被动。
微软的东东过于强调人性化,希望帮我们做好一切。 所以他的IIS 默认就帮我们选好了线程池,而且大部分情况下,我们不用去调整他。所以导致我们跟本不会注意的线程池的影响,甚至用了n久的IIS还不知道这个线程池是干啥用的。
oo复oo 评论于 2006-03-02 10:36 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
多谢楼主分享经验!
家中慢步 评论于 2006-03-03 00:24 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
农村教师苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!苦也!
教师 评论于 2006-03-03 14:13 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
谢谢,我也遇到了这个问题,刚开始时时根本不能同时建立.net 2.0. .net 1.1的虚拟目录,后来独立发布成两个站点,似乎好了。今天出现了楼主说的问题了。
Cassaba 评论于 2006-03-03 14:44 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
前天看到这篇文章,今天就遇到问题,正好用这个方案解决了~~
Boler Guo 评论于 2006-03-03 16:00 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
补充一下如何建立Application Pool
How to Create Application Pools
Important This feature of IIS 6.0 is available only when running in worker process isolation mode.
With IIS 6.0 running in worker process isolation mode, you can group Web applications into application pools. Application pools allow specific configuration settings to be applied to groups of applications, and the worker processes servicing those applications. Any Web directory or virtual directory can be assigned to an application pool.
By creating new application pools and assigning Web sites and applications to them, you can make your server more efficient and reliable, and your other applications always available, even when the applications in the new application pool terminate.
Important You must be a member of the Administrators group on the local computer to perform the following procedure (or procedures), or you must have been delegated the appropriate authority. As a security best practice, log on to your computer using an account that is not in the Administrators group, and then use the Run as command to run IIS Manager as an administrator. From the command prompt, type runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc".
To create a new application pool
In IIS Manager, expand the local computer, right-click Application Pools, point to New, and then click Application Pool.
In the Application pool ID box, type the name of the new application pool.
Under Application pool settings, click either Use default settings for new application pool or Use existing application pool as template.
If you selected Use existing application pool as template, from the Application pool name list box, click the application pool to be used as a template.
Click OK.
Cassaba 评论于 2006-03-03 16:04 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
日志内容: 传入参数:BindVnetAccountConfirm,值:3Aey6642guuRlu/5utb08bqdNM3Hf7A2Lpf5j+HuuzBSYN5z3RQOpZYVrCP6cTmSIG2VHh8LxB8DVymMdzb9cLuwuGHcfHGDmdw0JOvGnXNLUuSGDyaOhfE9jseTYwqsD1fTIhsO/qMkO1AFvypCs0vzZI2HNMYoppIBPqR7TRCo7gyrhZxdNGzmfygDNMTM30rkFxFd4c7BNujoK3DKSCIPOjgyGsRpTqpaeFjpl2yS08r9nS4vHEpOUPPp4Dds1VljWOXg7fDfNFwu/O4CJcQu46qB1t4k7TqNzfOAqbs= 调用对象:BindVnetAccount接口确认错误编号:-19999 错误描述:用户已经与SP用户帐号捆绑(捆绑代收费用)
abcdefg111 评论于 2006-03-03 17:46 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
我用的是windows xp,在iis5.1中找不到应用程序池怎么办?
ghx88 评论于 2006-04-24 16:41 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
我用的是windows xp ,在iis5.1中找不到应用程序池!怎么办?
ghx88hot@163.com
ghx88 评论于 2006-04-24 16:42 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
多谢楼主分享经验,不然还真不知道是怎么回事呢。
多谢楼主分享经验 评论于 2006-06-16 10:11 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
win2003中才有连接池,我知道的
梦珂 评论于 2006-07-11 11:53 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
太感谢了,正在发愁怎么解决呢,谢谢!@
志强 评论于 2006-08-18 01:36 回复 更多评论
# re: 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误
good,thanks
jacky yuan 评论于 2006-12-01 16:39 回复 更多评论
# Server Application Unavailable 错误--asp.net1.1和asp.net2.0共存[TrackBack]
你的.net2.0真的能与1.1安全正确地运行在同一台电脑上吗?小心ServerApplicationUnavailable错误 查看原文
Tony.Gong 评论于 2007-02-01 18:57 回复 更多评论
# Server Application Unavailable 错误--asp.net1.1和asp.net2.0共存[TrackBack]
你的.net2.0真的能与1.1安全正确地运行在同一台电脑上吗?小心ServerApplicationUnavailable错误 查看原文
win2003如何知道那个网站占用 CPU 进程最多?
在2003系统IIS6下,经常出现w3wp.exe的内存占用不能及时释放和CPU占用居高不下的问题,从而导致服务器响应速度很慢。怎样才能找出是哪一个站点出问题呢?
首先给每个站点都建一个应用程序池,这样便于找出问题出在哪一个站点上!
接下来就简单了
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid!
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示什么“此脚本不能与 wscrīpt 工作”,点击确定,接着会弹出一个对话框,是英文的,应该是提示你装一个什么来着,忘了,没关系,点确定就可以了。然后再次运行iisapp -a就可以了。这样就可以看到pid对应的应用程序池的名称了!
3、到iis中察看该应用程序池对应的网站,就可以了!然后真对站点排除错误!
(顺便说一下,如果运行后出现 error - no no results 这样的提示,说明你的站点没有开启或还没有被访问过!)
下面详细介绍一下 iisapp 的语法!
语法
iisapp [a/ AppPoolName | /p AppPoolID]
参数
/a AppPoolName
指定特定应用程序池的名称。(可选项)
/p AppPoolID
按 ID 号指定应用程序池。(可选项)
注释
• 如果未指定应用程序池名或 ID,则 iisapp 列出所有运行应用程序。
• 仅当使用 /s 时,才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。
• Iisext.vbs 执行 IIS 管理器中可用的相同操作。可使用任何一种工具管理 IIS 网站。
• 发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。
• 命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。
今天查看学校部门网站服务器,意外发现cpu占用100%,内存使用非常高。查看任务管理器,CPU全被w3wp.exe进程占用,内存也占用250M+。先手工杀掉( 没办法,速度太慢了),然后网上狂搜,文章很多,但没有几个能真正解决问题。自己简单分析了一下,可能是asp.net引起的,昨天刚给某个部门挂了.net上去,今天就遭了( )。
有的文章说单独建应用程序池能解决问题,我没有那么麻烦,我暂时的解决办法如下:
打开"IIS",在“应用程序池”上点右键,“属性/运行状况”,去掉“启用快速失败保护”前面的勾。
(两天后)
此方法好像还是没有什么解决,还是单独建个应用程序池比较好。
1、右键单击"应用程序池","新建/应用程序池",命名为other
2、然后在在怀疑有问题的网页上点右键,
(如果是网站):选择"属性/主目录"
(如果是虚拟目录):选择"属性/虚拟目录"
3、在“应用程序设置”里面的"应用程序池(N)"里选择other。
4、设置应用程序池other
在other上点击右键,选择"属性",在"回收"选项里面设置"最大虚拟内存"和"最大使用内存";
在"性能"选项里面设置"最大CPU使用率(百分比)"
以下是方案1:
现象:机器正在调试或允许IIS时,被异常中断服务(比如停电),然后再次IIS运行页面时,CPU资源占用100%,即使重新启动也无效。
原因:发生中断时,IIS会写异常日志,但是此时写入了乱码,造成IIS一直写日志的死循环,耗尽了系统资源。找到系统路径\System32\Logfiles\W3SVC1 下当天的错误日志文件,即可看到以上内容。
解决:删除 系统路径\System32\Logfiles\W3SVC1 下当天的错误日志文件,如:ex060904.log,然后重新启动IIS即可。
以下是方案2:
环境:win2003server+IIs+ASP+MSSQL
现象:每隔一段时间(不定,有时几分钟,有时半小时)出现一次网站打开非常缓慢,甚至有时会出现超时打不开站点,此时查看服务器端的进程,CPU占用率达到100%,其中w3wp占用70~80%,SQL占用20~30%。所有服务器端的操作也变得缓慢
初期解决方法:每次现象出现时,立即登录服务器直接结束w3wp进程或重启IIS服务,平均每天约十次操作,由于服务器存放于远程机房,所有操作都是远程控制进行,有时会因此出现远程无法连接登录的情况,只能通过电话通知机房管理人员重启服务器解决,此过程导致用户抱怨不断
经过网上查阅资料,发现此类现象多数由于网页代码不合理所致,以下情况会导致此类现象发生:
1、代码中多处使用application、seesion等服务器缓存,导致服务器资料过度占用;
2、代码有不合理语法,死循环等;
3、数据库损坏,尤其是ACCESS数据库;
4、装过多第三方软件或插件,与IIS或网页功能代码冲突。
第一阶段排查:根据查阅到的参考资料逐项分析
1、服务器上所有站点代码均为公司设计人员自行编写,可证实并无过多调用服务器缓存语法(排除)
2、代码是否存在不合理语法(不确定)
3、根据情况来看,IIS进程占用率升高时,SQL占用率同时升高,应为SQL数据库的站点,根据现象判断,库或表应该正常,估计是数据方面可能有误;(不确定)
4、服务器端除了基本的系统服务,防杀毒及网站运作必备服务之外,并无多余第三方软件,机率不大(排除)。
经过以上分析判断,将不确定项连起来得出的结论是:某个采用了SQL数据库的网站网页代码存在不合理语法,导致IIS和SQL进程CPU占用率过高。
第二阶段排查:
确定范围,接着继续把范围缩小。
由于服务器上采用SQL数据库的站点并不多,便于建立独立进程ID来观察,将所有采用SQL数据库的站点在IIS管理器中分别建立独立的应用程序池,然后通过CMD界面输入:iisapp -a 命今查看并记录下各IIS池的进程ID号,通过多次现象重现时的观察,有个IIS进程ID是导致此次问题的罪魁祸首。
以下是方案3:
在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。
解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
根据w3wp取得是那个一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。