在WCF服务中触发IIS AppPool循环

时间:2012-06-27 22:04:40

标签: asp.net wcf iis

我正在开发一个与不稳定的第三方C ++ DLL交互的Web服务。

它经常抛出AccessViolationException(即DLL中的崩溃),唯一的恢复方法是回收应用程序池。

有没有办法以编程方式回收应用池?

注意:我尝试更改我的.NET DLL和web.config的时间戳,但这似乎不足以让w3wp.exe进程卸载本机C ++ DLL。我无法触摸C ++ DLL,因为它返回错误:“DLL正在使用”。

1 个答案:

答案 0 :(得分:0)

如果您有权访问此框,则可以使用appcmd.exe:

C:\dev>\windows\system32\inetsrv\appcmd.exe apppool  /?
Administration of application pools

APPCMD (command) APPPOOL <identifier> <-parameter1:value1 ...>

Supported commands:

  list      List application pools
  set       Configure application pool
  add       Add new application pool
  delete    Delete application pool
  start     Start application pool
  stop      Stop application pool
  recycle   Recycle application pool

(To get help for each command use /?, e.g. 'appcmd.exe add site /?'.)

要在代码中使用它,您需要使用System.Diagnostics.Process来运行相应的循环命令。