Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SharePoint 2010 - Creating a supplemental web.config file

I'm currently developing a new feature for SharePoint 2010. Along with the deployment of my feature I would like to add some settings to the <appSettings/> section within my SharePoint applications web.config.

I found some information on MSDN regarding adding supplemental .config files during deployment, but I have not been able to get this to work. This approach seemed the cleanest to me since I can have all my changes within a single file and have them deployed with the rest of my application.

I've created a webconfig.MyApp.xml file as suggested in the documentation, deployed it to the <SharePoint 14 hive>\Config folder, but my changes are not being propagated to my applications web.config.

Below is a sample snippet from my supplemental config file.

<?xml version="1.0" encoding="utf-8" ?>
<actions>
    <add path="configuration/appSettings">
        <add key="MyFeatureKey" value="MyFeatureValue" />
    </add>
</actions>

I would like to avoid having to manually edit the web.config since those changes can easily be lost during SharePoint maintenance, etc.

If you have any ideas on an alternate maintainable approach to deploying web.config changes, my ears are open.

UPDATE: The answers that have been given so far are great and I'm sure they will work. But I'm looking for a solution that can be packaged up within my single WSP and deployed without any additional steps required.

like image 879
Wallace Breza Avatar asked Aug 10 '10 14:08

Wallace Breza


People also ask

Where is Web config file for SharePoint?

Typically the Web. config file is stored at C:\inetpub\wwwroot\wss\VirtualDirectories\Port_Number .

How do I open a Web config file in SharePoint 2013?

Select a web application (this could be MySites, a portal or an instances of SharePoint, Central Admin, etc). Right-click and press Explore. The folder containing the relevant web. config file will open.

Is Web config an XML file?

An IIS web. config file is an XML file containing rules for a particular site (or directory) on your web server.


2 Answers

As Russ and breischl suggest, you can make use of the WebConfigModifications property of the SPWebApplication object. To deploy this together with your feature, put your code in a feature receiver. That way, you can make the web.config modifications automatically when the feature is installed.

In your feature receiver, don't forget to call the ApplyWebConfigModifications() property on your SPWebApplication object.

Example: http://weblogs.asp.net/wesleybakker/archive/2009/01/21/web.config-modifications-with-a-sharepoint-feature.aspx

You can package both your feature and your feature receiver assembly in a single wsp package.

like image 87
Tom Vervoort Avatar answered Sep 30 '22 11:09

Tom Vervoort


Regarding your supplemental file not being applied to web.config: From MSDN: "You can retroactively apply changes to the web.config files of the server by running the copyappbincontent Stsadm command-line operation. You must run the operation on each front-end web server in the deployment."

like image 25
Jason Weber Avatar answered Sep 30 '22 12:09

Jason Weber