在我开始之前,我知道使用iisreset被认为是不好的做法,但这不应该发生..
我们有什么:
Windows Server 2003 R2上有几台带有IIS6的计算机(64位和32位)
几个WCF Web服务(.NET运行时2.0)部署在多个应用程序中,每个应用程序都有自己的应用程序池,每个应用程序池在其他Windows帐户下运行.
怎么了:
这是"正常"的iis行为,我应该避免使用iisreset,还是我们在.NET代码中做错了什么?
从Windows Vista开始,我们可以直接从任务管理器创建进程的内存转储.可悲的是,Windows Server 2003还没有这个选项:(我找到了完成整个系统范围内存转储的方法,但这有点太多了.
有没有办法转储一个进程?由于这是一个生产服务器,我不希望安装在后台运行任何重量级的工具或服务,最好我只是想转储过程中,转储复制到我自己的机器和调试它.
问题: 我需要禁用控制台应用程序的崩溃调试提示.
背景: 我们有一个应用程序可以与第三方同步信息,因为第三方在一天中的某些时间因连接问题而崩溃.我们无权访问源代码以正确捕获错误,因此我只需要应用程序失败并再试一次.我有另一个应用程序监视我们的同步工具,以确保它正在运行.
当同步应用程序崩溃时,会出现需要用户交互的调试提示.因为它停留在屏幕上,所以应用程序永远不会停止运行.结果,"健康检查"从未知道失败.
我大约2年前做过这个,但对于我的生活,我无法记住文章或所需的注册表路径.
谢谢,Brian
操作系统: Windows 2003 Server 应用程序类型: .NET 3.5控制台应用程序
FIX:发现者:John Knoeller
删除以下键
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
我们使用Jenkins将.NET Web应用程序与NAnt/NUnit持续集成以进行.NET测试.Jenkins配置了9个从站(所有这些都是Windows Server 2003),它们运行许多构建及其自动化测试.
我们正在尝试设置js-test-driver来运行我们的JavaScript单元测试,而下面的NAnt任务在开发人员工作站本地运行良好.Internet Explorer是我们唯一想要测试的浏览器,因为它是我们所有Web应用程序的唯一目标浏览器.
<target name="jsTests" >
<echo message="Running JavaScript tests..." />
<exec program="java.exe">
<arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" />
<arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" />
<arg line="--port 9876"/>
<arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/>
<arg line="--verbose"/>
<arg line="--reset"/>
<arg line="--tests all"/>
<arg line="--testOutput '${results.jstestdriver.dir}'"/>
</exec>
</target>
Run Code Online (Sandbox Code Playgroud)
我们在Jenkins遇到同样的问题,可能是因为:
该GettingStarted页面JS测试驱动器维基说,我们可以在不同的机器比在JS测试驱动程序服务器运行上运行的浏览器:
在运行任何测试之前,您需要启动测试服务器并捕获至少一个从属浏览器.服务器不必驻留在测试运行器所在的机器上,并且浏览器本身也可以位于不同的机器上.
continuous-integration hudson windows-server-2003 js-test-driver jenkins
我在Windows Server 2003 R2框中安装了.NET Framework 3.5 SP1和ASP.NET MVC CTP,但我的ASP.NET MVC站点仍无法在该服务器上运行.我在互联网和IIS上搜索解决方案,我注意到我不能为我的虚拟目录选择2.0以外的其他.NET Framework版本.我几乎可以肯定,如果我纠正这个,我可以让我的网站在那里工作.
目前主要的"/"URL回答:
Directory Listing Denied
This Virtual Directory does not allow contents to be listed.
Run Code Online (Sandbox Code Playgroud)
而"/Default.aspx"URL的答案是:
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Section or group name 'system.web.extensions' is already defined.
Run Code Online (Sandbox Code Playgroud) 我的Web应用程序仅通过SSL运行,并在用户使用用户名和密码成功登录后为每个用户设置限时cookie.系统中最大的弱点是损害现有用户的cookie.并且两个猜测会话ID GUID.
我知道第一个弱点的机制,但我想知道我需要担心攻击者根据他们之前通过登录他们已设置的帐户获得的GUID猜测会话ID GUID的可能性有多大?在这种情况下,Web服务器是Windows 2003,并且使用.Net 3.5生成GUID.
我有一个Windows服务(目前在Windows 2003 Server下运行),需要使用自动化与几个word文档进行交互.此服务需要移动到新服务器.
是否可以在Windows 2008 R2 Server Core Machine中安装和调用Word文档?
我有一个.Net 4.0 Win Forms应用程序,我在两个盒子上运行,一个是Win7盒子,一个是Win Server 2k3盒子.2k3盒子上的应用程序全天有2-3个间歇性挂起,似乎是大型垃圾收集,而win7盒子从来没有这些长时间的垃圾收集.Win2k3上的默认GC是否可能与Win7上的默认值不同?
.net garbage-collection windows-server-2003 winforms windows-server
我是Windows服务的新手.我为我的c#Windows服务创建了一个安装程序,并且服务器上的安装(Windows Server 2003)似乎已经起作用.当它启动时,它会写入Service started successfully日志.当它停止时,它写道Service stopped successfully.但是,有时服务会在没有向日志写入任何内容的情况下停止运行,因此我会手动启动它.当我随后查看日志时,它Service started successfully按预期显示.奇怪的是,在日志中连续两次看到它显然缺少一个服务以某种方式停止运行的条目.
这可能是什么原因?我将服务设置为自动并安装它以便为所有用户运行.我的印象是,这意味着只要机器启动,服务就会自动启动.我如何找出它停止的原因?崩溃的服务会自动写入事件日志,还是必须以他们记录崩溃原因的方式处理异常?
编辑:一些额外的信息:
更新:回答者推荐了一个全局异常处理程序.虽然我不会将其作为永久修复来实现,但它至少可以帮助我找出问题发生的位置.我实际上用我安装的服务对它进行了测试,它确实有效 我发现未处理的异常实际上会使服务崩溃,而根本不会向日志写入任何内容.我认为它至少会报告一些应用程序错误,但事实并非如此.
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
//other code here
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Utilities.WriteIt(e.ExceptionObject as Exception);
}
Run Code Online (Sandbox Code Playgroud) 我们正在使用免费软件MAPI/SMAPI实现间歇性死锁.我怀疑实现是否有问题但是可能将登录标志更改为MapiLogon或Exchange上的配置设置可以解决此问题.
Result := MapiLogon(0, LogonProfile, LogonPassword, flLogonFlags, 0, @hSession);
Run Code Online (Sandbox Code Playgroud)
为@J 添加了cudo
不鼓励使用简单MAPI.正确的操作是开始使用扩展MAPI或Outlook对象模型.虽然我同意这一说法,但我没有任何影响力来实现这一点.
当前设置的解决方案或理解为什么会发生死锁的解决方案仍然很难实现.
简而言之
0b60调用MapiLogof08940894等待临界区036c036c被线程锁定0b60僵局
内核转储显示以下关键部分被线程锁定并拥有 b60
CritSec EMSMDB32!ScStatClose+17ac7 at 354650d0
WaiterWoken No
LockCount 1
RecursionCount 1
OwningThread b60
EntryCount 0
ContentionCount 1
*** Locked
线程的0b60调用堆栈
内核线程对象88a53758
注意KeWaitForSingleObjectwith参数87fc3c68是线程0894
b8b4fcec 8093b2e4 87fc3c68 00000006 00000001 nt!KeWaitForSingleObject+0x346 (FPO: [Non-Fpo])
b8b4fd50 8088b658 00000184 00000000 00000000 nt!NtWaitForSingleObject+0x9a (FPO: [Non-Fpo]) …