【问题标题】:how to deploy web.config modifications in a Sharepoint web application?如何在 Sharepoint Web 应用程序中部署 web.config 修改?
【发布时间】:2010-10-11 21:09:56
【问题描述】:

我在 Sharepoint 2007 中有一个网站。我们使用 wsp 来部署我们的项目。我们可以部署 dll、用户控件、功能,但我不知道如何在 web.config 中包含新行。

在 web.config 中进行更改的可能方法是什么?

另外,如何在 wsp 中包含资源(resx)?

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

    在多服务器场中手动编辑 web.config 是个坏主意。确保 web.config 文件在每个 WFE 上保持同步将很快成为一场噩梦。

    使用 SPWebConfigModification 类管理整个场中的 web.config 更改是一个好主意,因为更改将保留在 SharePoint 配置数据库中,并自动推送到场中的每台服务器。

    话虽如此,针对类进行编码可能会很痛苦。幸运的是,有一个免费提供的pretty good front-end,它为您在管理中心提供了一个配置屏幕来添加/删除 web.config 更改。

    【讨论】:

    • 我认为这取决于您的环境中有多少 WPE。
    • 我认为在功能部署方面使用开箱即用的功能很重要。添加安全控件和自定义 CAS shuold 始终通过 manifest.xml 文件完成,因为它每次也会保存 web.config 文件的修订。 SPWebConfigModification 不会。
    • 我完全同意使用 OOB 特性部署特性来管理 SafeControls 和 CAS 策略,我只是假设他想做的事情超出了这个范围,很好。
    【解决方案2】:

    有一种非常简单的方法可以通过解决方案添加安全控制条目。 manifest.xml 中添加以下 sn -p 将对 web.config 文件进行相关修改。要设置其他值,您应该使用 SPWebConfigModification 类在特征接收器中进行。

    <Assemblies>
      <Assembly ...>
         <SafeControl Namespace=".." Assembly="..." Type="..." Safe="True" />
      </Assembly>
      ....
    </Assemblies>
    

    【讨论】:

      【解决方案3】:

      此外,如果您考虑使用 web.config 中的 appSettings 作为站点配置值,您实际上还有其他选择。由于各种原因,web.config 可能并不总是放置您的值的最佳位置 - 至少如果“超级用户”等应该能够在以后更改它们的话。为此,您可以改为使用 Config Store 功能,该功能还可以在整个场中扩展以用于多个前端服务器等:

      http://www.sharepointnutsandbolts.com/2008/05/introducing-sharepoint-config-store-for.html

      【讨论】:

        【解决方案4】:

        关于 web.config 文件...

        Web.config 是一个 XML 文档,其中包含 Web 应用程序的配置设置。它位于 Web 应用程序的根目录中,因此对于 SharePoint,它通常位于文件夹 C:\Inetpub\wwwroot\wss\VirtualDirectories\SharePoint80 中,其中 SharePoint80 是您的 Web 应用程序的名称。

        只要标签和部分保持正确的顺序,手动编辑 web.config 文件是安全的。看this article

        也可以通过编程方式对其进行更改,this post 应该会告诉您如何操作。

        希望这会有所帮助。

        【讨论】:

        • 这可能会产生误导。对于 SharePoint,不建议以这种方式修改 web.config。此线程中的其他答案就如何在 SharePoint Web 应用程序的上下文中使用配置设置提供了很好的建议。
        【解决方案5】:

        我认为当您有多个服务器时,直接操作 web.config 会变得很棘手。如果您的整个安装只在几台服务器上,那么这样做可能比尝试通过代码进行简单的 web.config 更改更容易。

        另外,直接操作 web.config 可确保您在源代码控制系统中拥有完整的 web.config。如果您使用 API 进行更改,那么您在源代码管理中所拥有的只是一堆您希望没有错误的 C# 代码!

        【讨论】:

          【解决方案6】:

          我的建议是不要通过代码进行任何手动修改。相反,通过将修改放在 12\Config 目录 as described in Microsoft's SharePoint documentation 中来执行“SharePoint 方式”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-02-21
            • 1970-01-01
            • 1970-01-01
            • 2023-03-18
            • 1970-01-01
            相关资源
            最近更新 更多