这是我的问题:
我刚刚参加了一个庞大的asp.net C#项目,我一直负责修复一些性能问题(不是我的专业领域).更具体地说,在5-7次重定向/ ajax调用之后,Web服务器停止响应并且整个页面(以及最终的浏览器)冻结.
我不认为这是一个编码问题,因为我在几页(Page_Load方法)中设置了断点,在5个请求之后它甚至没有达到断点.
我不相信这与此问题有关,因为我增加了浏览器的每个服务器参数的最大连接数,并且我得到了相同的行为.此外,在一个浏览器IE中的这5个请求之后,应用程序也停止在FF中工作.
这不是资源问题,因为w3wp.exe进程永远不会超过500MB内存.
我在使用Fiddler和其他工具监控请求时注意到的一件事是服务器在加载图像文件(png,jpg)时需要很长时间.我不知道这是否相关.
我已经在服务器上启用了失败的请求跟踪,我唯一注意到的是,有些请求因401错误而失败,甚至我已将匿名身份验证设置为启用.这是确切的消息
MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName ManagedPipelineHandler
Notification 128
HttpStatus 401
HttpReason Unauthorized
HttpSubStatus 0
ErrorCode 0
ConfigExceptionInfo
Notification EXECUTE_REQUEST_HANDLER
ErrorCode The operation completed successfully. (0x0)
Run Code Online (Sandbox Code Playgroud)
有时会使用ModuleName:ScriptModule抛出此消息
我已经在这件事上浪费了2天而且我已经没有想法了,所以任何建议都会受到赞赏.
我有一个使用MSI安装程序安装的Windows窗体应用程序(C#,NET 3.5).在这个应用程序中,我有一个按钮,当按下时打开一个具有特定URL的浏览器.我用
Process.Start(url);
Run Code Online (Sandbox Code Playgroud)
打开浏览器.这在调试时工作正常,但在安装后它的结果不是最佳.例如.
据我所知,这个问题是由安装时与应用程序关联的用户引起的.
考虑到用户可能需要代理和个人浏览器设置以及Just Me,Everyone选择应该由用户决定.什么是最好的行动?
我尝试使用当前登录用户调用Process.Start(url)
ProcessStartInfo.UserName = Environment.UserName
Run Code Online (Sandbox Code Playgroud)
但它也需要密码,并且要求凭证不是一种选择.
你有任何其他的建议,我是否正确使用Process.Start(),我在安装过程中需要进行设置,有什么我错过的吗?
更新: 使用Process Explorer作为data_smith建议我注意到以下内容:
有没有办法在没有要求凭据的情况下使应用程序在当前用户下启动(在Windows启动时),即使它是为每个人安装的?
更新:遵循data_smith的建议使用ShellExecute以及此处和此处的建议我能够解决问题并获得所需的行为.
主要问题是当安装程序完成后,应用程序启动了Process.Start(); 这启动了应用程序作为NT AUTHORITY\SYSTEM用户(用户安装程序在其下运行)因此,此应用程序打开的所有浏览器也将在SYSTEM用户下.通过使用data_smith的建议和上面链接的建议,我能够在当前用户下启动该过程.
重新启动计算机后,应用程序将在正确的用户下启动,因为这是通过注册表项进行配置的.