我的网站正在使用MSCaptcha库来实现验证码功能。该实现需要在web.config文件中定义处理程序,为旧IIS和开发服务器定义web / httphandler,为IIS7 +定义webServer / handler。
现在,每次我将项目发布到生产服务器(运行IIS7)时,都会收到内部服务器错误消息,因为已在配置文件中定义了http处理程序。删除后,网站运行完美。但是,当我在本地测试时,我需要定义http处理程序,因为开发服务器似乎不会读取webServer /处理程序。
显然,一个解决方案就是每次将我的网站发布到生产服务器时暂时删除httphandler,但是因为我经常这样做有点麻烦。有没有办法指定何时应该和不应该在配置文件中包含http处理程序?
答案 0 :(得分:2)
使用配置文件转换和构建名称来完成此任务。创建具有dev / local设置的web.config,然后为发布模式创建一个转换,删除您的条目并创建正确的IIS7 +。
然后,无论何时部署发布模式,它都适合您的发布环境!
此功能内置于VS中,但对于非Web应用程序,如果不使用SlowCheetah之类的功能,它将无法正常工作。
示例: