2009-10-20 68 views
0

嗨,大家好,IIS 6〜7让我害怕web.configs的

我们有三个服务器上运行的混合开发环境:赢服务器2003 & 2008,IIS 7 & IIS 6,ASP.NET 2.0 & ASP.NET 3.5。以前,所有三台服务器都是Server 03/IIS6/ASP.NET 2.0,但是随着这一新的变化,我发现将任何应用程序从服务器推送/移动到服务器始终是一种可怕的体验,因为总会有各种各样的问题从服务器到服务器的web.config。我曾经认为自己是一个有信心的ASP.NET开发人员,但现在我很害怕每天上班。

我一直使用的VS生成对我来说,赢2003/ASP.NET 2.0服务器上的web.configs。我们的web.configs都不是“leet”,虽然我们使用ScriptManager和UpdatePanel,但它们都是正常的。

要获得通过,作为一个临时的解决办法,我必须记住的是,当项目被移动/测试/部署,从来没有移动或覆盖任何web.configs,事情会比较混乱非常快。我已经尝试过使用新的IIS7工具“管理”like suggested here我的web.configs,但即使这样也无法一直工作。

我能在这里做什么,发生了什么?是否有一个标准的web.config可以在所有服务器上运行并执行UpdatePanel和ScriptManager?

[编辑问题]

+0

我想你只是机枪发射了十几个不同的问题成为一个SO问题。深吸一口气,一次解决一个问题。把这些问题中的每一个都变成一个单独的SO问题,@psasik是正确的,在你理解了发生的事情后,恐惧会消失。 – Brandon 2009-10-20 15:45:20

+0

我一直害怕web.config。 – 2009-10-29 13:38:29

回答

9

由于IIS6是基线安装应用程序时,你应该确保在运行IIS7下的“经典”模式下的应用。这使得配置与IIS6框相同。这是我们现在运行我们的Web应用程序的方式,直到我们完全迁移到100%IIS7服务器环境,并且我们在部署/运行时没有任何问题。

要做到这一点,您可以选择在IIS7自带的“Classic .NET AppPool”下运行您的应用程序,或者假设您创建了自己的自定义应用程序池,请确保设置“Managed Pipeline Mode “转换为应用程序池的”高级设置“对话框下的”经典“。

+0

我试过了,它没有工作。我最终做的是洗牌多个web.configs。 – 2009-11-16 17:54:24

+0

你将要定义“没有工作”,因为我做的这几种环境(包括生产的),所以我知道一个事实,它的工作。这正是为什么IIS7中存在“Classic”模式选项的原因。如果您提供更多信息,我会很乐意尝试提供帮助。 – 2009-11-16 18:48:18

+0

这是很久以前的...问题是不同的服务器盒,IIS版本和程序集;结果每个盒子都需要一个单独的配置。但是,我现在用的每一天你的建议在办公室里,“经典.net应用程序池”一路走好! – 2010-05-18 10:22:28

1

知识是克服恐惧的好方法。弄清楚发生了什么事(你现在正在抓住吸管),恐惧就会消失。

这是我的猜测,如果你重构使用配置文件中的代码,你会做的更好。那里的懒散可以明确解释你的怪异和不一致之处。如果代码运行不正常,则无法使用配置设置进行控制。

2

您可以通过更改过程在IIS6下使用经典模式。这实际上很简单,它应该工作。

另一种方法是,以自动化的部署过程,并拥有它,这样它部署正确的web.config文件到服务器时,你需要更新你的应用程序。

4

你应该认真看web deployment projects为Visual Studio 2008

这是一个官方的附加为Visual Studio,让你叫web部署项目中的新项目类型。最有用的功能之一是能够执行web.config搜索/替换以及预编译的网站或Web应用程序项目的构建。

在你的情况,你会做的是建立在Visual Studio中的解决方案配置您的所有目标Web服务器。然后,您将为您的Web应用程序创建一个Web部署项目。在部署项目的属性中,您可以告诉它您希望如何编译项目以及要为每个解决方案配置使用哪些web.config替换项。

最终结果应该是您可以打开Visual Studio,选择解决方案配置,构建部署项目。构建将创建一个包含正确配置的web.config文件的所需文件夹。然后,您只需将该文件夹复制到您的服务器上,即可开始运行。

最重要的是,由于不同的配置文件都存储在项目中,因此它可以让您在一个位置管理您的配置并将其全部检入到源代码管理中。

请注意,在Visual Studio 2010中没有等价物。相反,VS 2010有一个全新的部署机制,称为MSDeploy。 2010年,您不需要为部署项目提供单独的项目,而MSDeploy则可以进一步实现更多功能,从而允许您打包SQL数据库和其他内容。

2

如果运行使用的是经典的.NET应用程序池的IIS 7的网站,那么配置文件将匹配你会用什么样的IIS 6,这可能是最简单的事,直到你准备好迁移一切IIS 7.

相关问题