昨天在使用C#代码操作IIS的时候,遇到了一个非常头疼的问题,其实之前也出现过,不过有些忘了,在昨天出现问题后又犯了半天2才解决,为了不再被这类问题困扰,这里mark一下:)
问题描述
我在使用C#的Microsoft.Web.Administration类库管理IIS时,添加了新的应用程序池,但是在IIS管理器界面无法看到。后来把程序移植到另一台电脑上运行就可以正常工作了。
排查方案
我检查了代码逻辑,并没有问题。比较了两台电脑的差异,发现是我开发环境中的DLL文件版本与运行环境不匹配导致的。
解决方案
我从运行环境正确的电脑中获取对应版本的DLL,替换到项目中后重新编译,问题就解决了。
总结
在使用C#管理IIS时,必须确保引用的DLL版本与IIS环境匹配。最好直接从官方获取目标版本,而不是简单依赖开发环境的文件。同时还需要注意不同IIS版本的接口变化。这个经验教训值得吸取。