【发布时间】:2010-10-11 21:09:56
【问题描述】:
我在 Sharepoint 2007 中有一个网站。我们使用 wsp 来部署我们的项目。我们可以部署 dll、用户控件、功能,但我不知道如何在 web.config 中包含新行。
在 web.config 中进行更改的可能方法是什么?
另外,如何在 wsp 中包含资源(resx)?
【问题讨论】:
标签: sharepoint sharepoint-2007
我在 Sharepoint 2007 中有一个网站。我们使用 wsp 来部署我们的项目。我们可以部署 dll、用户控件、功能,但我不知道如何在 web.config 中包含新行。
在 web.config 中进行更改的可能方法是什么?
另外,如何在 wsp 中包含资源(resx)?
【问题讨论】:
标签: sharepoint sharepoint-2007
在多服务器场中手动编辑 web.config 是个坏主意。确保 web.config 文件在每个 WFE 上保持同步将很快成为一场噩梦。
使用 SPWebConfigModification 类管理整个场中的 web.config 更改是一个好主意,因为更改将保留在 SharePoint 配置数据库中,并自动推送到场中的每台服务器。
话虽如此,针对类进行编码可能会很痛苦。幸运的是,有一个免费提供的pretty good front-end,它为您在管理中心提供了一个配置屏幕来添加/删除 web.config 更改。
【讨论】:
有一种非常简单的方法可以通过解决方案添加安全控制条目。 manifest.xml 中添加以下 sn -p 将对 web.config 文件进行相关修改。要设置其他值,您应该使用 SPWebConfigModification 类在特征接收器中进行。
<Assemblies>
<Assembly ...>
<SafeControl Namespace=".." Assembly="..." Type="..." Safe="True" />
</Assembly>
....
</Assemblies>
【讨论】:
此外,如果您考虑使用 web.config 中的 appSettings 作为站点配置值,您实际上还有其他选择。由于各种原因,web.config 可能并不总是放置您的值的最佳位置 - 至少如果“超级用户”等应该能够在以后更改它们的话。为此,您可以改为使用 Config Store 功能,该功能还可以在整个场中扩展以用于多个前端服务器等:
http://www.sharepointnutsandbolts.com/2008/05/introducing-sharepoint-config-store-for.html
【讨论】:
关于 web.config 文件...
Web.config 是一个 XML 文档,其中包含 Web 应用程序的配置设置。它位于 Web 应用程序的根目录中,因此对于 SharePoint,它通常位于文件夹 C:\Inetpub\wwwroot\wss\VirtualDirectories\SharePoint80 中,其中 SharePoint80 是您的 Web 应用程序的名称。
只要标签和部分保持正确的顺序,手动编辑 web.config 文件是安全的。看this article。
也可以通过编程方式对其进行更改,this post 应该会告诉您如何操作。
希望这会有所帮助。
【讨论】:
我认为当您有多个服务器时,直接操作 web.config 会变得很棘手。如果您的整个安装只在几台服务器上,那么这样做可能比尝试通过代码进行简单的 web.config 更改更容易。
另外,直接操作 web.config 可确保您在源代码控制系统中拥有完整的 web.config。如果您使用 API 进行更改,那么您在源代码管理中所拥有的只是一堆您希望没有错误的 C# 代码!
【讨论】:
我的建议是不要通过代码进行任何手动修改。相反,通过将修改放在 12\Config 目录 as described in Microsoft's SharePoint documentation 中来执行“SharePoint 方式”。
【讨论】: