Working with multiple conflicting config files

by Matt 11. September 2006 18:26

One of the luxuries of working in a corporate environment is the uniformity (and I never thought I'd say that). You're in control of just about everything - you can ensure that all developers are using the same configuration. You can all use the same databases, the same web services, the same web sites.

Working on a distributed, open source project is entirely different. You're not in control of the environments being used. Different developers will have things set up differently. And all this is reflected in different web.config files.

There's just one teensy-weensy problem. The web.config file is under source control, which means there is only One True Copy. And if I change it to get my site working, I change it for everyone else, and break theirs.

Of course I'm talking about SingleUserBlog, and of course, this is a problem we've hit. We're all using a different config to each other, and I've already checked in a config file that won't work for everyone else.

So I've had a play around and I've come up with a solution. It's teetering dangerously close to over-engineered, but it also does the job nicely, and I learned a few things to the bargain.

Since SingleUserBlog uses Web Application Projects, it's an msbuild-based project. And the nice thing about msbuild-based projects is that you can edit the project file, add your own tasks in and Visual Studio will still quite happily run with it.

The idea is quite straightforward. Get rid of the web.config file. Create a default.config file that contains the default settings for the project - the one you'd be happy to release. Then, change the .csproj file to copy this file to web.config and use the ReplaceConfigSections task from the Web Deployment Projects add-in to replace any sections in the file with xml from external files.

The implementation is perhaps a little awkward, but it's not exactly horrible either. First, in the main .csproj file, import a MergeConfigFiles.targets file that does the heavy lifting. This new file needs to set up a UsingTask to include the ReplaceConfigSections task. It also needs to set up a few default properties, such as the name of the config files to copy ("default.config" to "web.config"). It then imports another .targets file, if it exists. This one is $(USERNAME)-MergeConfigFiles.targets. If it doesn't exist, the default.config file just gets copied, unchanged to web.config. If it does exist, it should be another msbuild project that simply sets up an ItemGroup containing ConfigReplacementFiles items. Each item points to a file that just contains xml that will replace a specific section in the web.config file. That section name is defined in the Section metadata item in the ConfigReplacementFiles item. The ItemGroup is fed into the ReplaceConfigSections task.

When a build is run, Visual Studio will copy across the default config file, then process this copy, replacing all the sections listed with the contents of all the files listed. If any of the files change, or if the default file changes, it gets rebuilt. It even deletes the web.config file on clean.

There are a couple of issues with this method, but I don't think any are showstoppers. It's perhaps not ideal to have to define this with an msbuild project file, but it's not difficult. Here's an example:

<Projectxmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <ConfigReplacementFilesInclude="compilation.config">
      <Section>system.web/compilation</Section>
    </ConfigReplacementFiles>
    <ConfigReplacementFilesInclude="authentication.config">
      <Section>system.web/authentication</Section>
    </ConfigReplacementFiles>
  </ItemGroup>
</Project>

Not exactly difficult. Another drawback is that if you change this .targets file, the changes are not reflected until the project is reloaded. Not ideal, but not major, either. Oh, and it will only work for web.config, too - the web deployment project task assumes that. Supporting app.config wouldn't be too tricky either, but would require a custom task.

One drawback that could actually cause problems is ensuring that your overrides don't override something new, or you only add new things to your overrides, but this is really just something you need to keep track of.

Another interesting drawback is that asp.net will automatically recreate the web.config file for you if it gets deleted. Somehow it knows to call the .csproj file and get it created correctly - well, mostly correctly. It did generate some things incorrectly while testing that, and it always did a full build after that anyway, so everything still worked correctly.

The only files that get into source control are default.config and the initial MergeConfigFiles.targets. The username based file doesn't get added, and neither do the local changes.

It might be easier to download an example and actually try it out. Let me know what you think.

Tags:

SingleUserBlog

Comments (210) -

Darren Neimke
9/12/2006 7:55:33 PM #

Nice one!

Hi Matt, this seems like a good path - well done for doing the research on it.  So basically, we just create a standard Web.config file which might use (say) the FileSystemProvider for SUB and the AccessProvider for ASP.NET API's and then allow each developer to create their own specific replacement file overrides.

Reply

Fabrice
9/14/2006 8:32:13 AM #

What about configSource?

Did you think about using the configSource attribute to externalize the configuration sections that could be customized? This way you'd just have to replace the external configuration files with the custom ones.

For example, in web.config you'd have:

  
  


and the actual configuration in the compilation.config and authentication.config files.

Reply

Matt Ellis
9/14/2006 10:28:44 AM #

configSource

Yeah, it's an option. But you can't provide a default set of values if you use configSource, so you'd need the target file to be always there. This means these files need to be checked into source control too, and then you're back where you started.

Reply

Donnie Hale
Donnie Hale
9/14/2006 1:40:23 PM #

Multiple Web.config files

I'm not sure why this is such a difficult issue. I have multiple Web.config files (Web.dev.config, Web.qa.config, Web.prod.config, etc.). Within VS, I use Web.dev.config (renamed, obviously, to Web.config).

When it's time to push to an environment, the build/stage scripts pick the right .config file for the targeted environment, run "aspnet_compiler", and deploy the results.

That's worked fine for me for numerous apps. What am I missing?

Donnie

Reply

Walt Ritscher
9/14/2006 4:00:43 PM #

Multiple web.configs

We use MSBuild for our web application project too.  I agree with Donnie Hale though.  We have multiple configs (web.config.dev, web.config.testserver, web.config.prodserver, web.config.default).  MSBuild determines which one to deploy and copies it to the build folder.  Each config is under source control.  Works for us.

Reply

matt
9/14/2006 4:12:51 PM #

Multiple editors of web.config

Your approach works great for different environments (I use at work). The problem here is different in that we've got multiple people working on the one web.config at a time. E.g. I want to use a Microsoft Access based profile provider, and another guy wants to use a Sql Server one. If we have just one web.config file, it's going to be in source control. If I change it to use Access, I'll check that in and cause problems for the other guy using Sql Server.

I could check in multiple web.config files (web.matt.config, web.darren.config, etc) but then we don't have a default config file set (and this doesn't really scale for more developers).

Instead, I have one default.config file in source control, this is the default web.config file that will get used, and any changes will end up back in source control. If a developer wants to have a different config than the default, they just override the bits they want changed.

I think there are lots of ways around this problem - I was looking for a low friction, automated solution.

And I think perhaps I titled this post wrong - it's not "working with multiple conflicting config files" but "multiple people making conflicting changes on one config file"

Reply

Walt Ritscher
9/14/2006 4:22:20 PM #

Multiple web.configs

We use MSBuild for our web application project too.  I agree with Donnie Hale though.  We have multiple configs (web.config.dev, web.config.testserver, web.config.prodserver, web.config.default).  MSBuild determines which one to deploy and copies it to the build folder.  Each config is under source control.  Works for us.

Reply

Matt Ellis
9/22/2006 4:34:56 PM #

Are comments broken?

Testing comments. Might have broken something...

Reply

Dave Moyle
Dave Moyle
4/4/2007 1:44:03 AM #

RE: Working with multiple conflicting config files

Your sample link is broken.

The type or namespace name 'RewritingStaticFileHandler' could not be found (are you missing a using directive or an assembly reference?)

Reply

Matt Ellis
4/4/2007 4:48:59 PM #

RE: Working with multiple conflicting config files

Ooops. Fixed the link - should be working now.

Thanks for letting me know!

Reply

Rajesh
Rajesh
6/19/2007 5:31:07 AM #

RE: Working with multiple conflicting config files

Good Article, but please make the font-color as black. It was difficult to read the article.

Thankyou

Reply

Matt Ellis
6/19/2007 9:40:19 AM #

RE: Working with multiple conflicting config files

Good point. Done! Now in lovely black on white.

Reply

Brian Keith Photography
Brian Keith Photography United States
5/4/2009 11:47:26 PM #

i think you have touched on some very good points about the web.config and the troubles of using it in different development environments.

Reply

poker online
poker online
11/28/2009 12:43:33 AM #

it's an option. But you can't provide a default set of values if you use configSource, so you'd need the target file to be always there. This means these files need to be checked into source control too, and then you're back where you started.

Reply

Rohan Cragg
Rohan Cragg
1/6/2010 12:01:00 PM #

I just asked a quesion on StackOverflow: "Can I use the ReplaceConfigSections task in a non-web config file?" if anyone thinks they may know, please come on over and answer... thanks.

http://stackoverflow.com/questions/2014370

Reply

New Trailer brake controller
New Trailer brake controller
2/9/2011 9:40:35 AM #

Would you same to position a journalist author on my diary?

Reply

Bus Hire Adelaide
Bus Hire Adelaide
3/6/2011 6:02:46 AM #

Good  blog you've submitted. I found your information really useful  and I really love the look of the blog. I've been searching for a blog with a good appearance like yours. Cheers for the fantastic blog, I'm going to build my blog similar to yours it's great.

Reply

affiliate dood
affiliate dood
3/23/2011 4:35:35 PM #

Finding webmaster affiliate programs that are reputable these days are few and far between.

Reply

Spyshop
Spyshop
3/28/2011 11:50:49 AM #

You speak about single user blog's. Can you call some multi user blogs?Really not aware about those ones.Thx anyways.

Reply

Weight Loss
Weight Loss
5/5/2011 2:34:32 PM #

welcome to our store for buy the best weight loss pills.

Reply

Unsigned guitar artists
Unsigned guitar artists
6/9/2011 3:40:52 PM #

Enjoyable

Reply

Porno
Porno
6/12/2011 5:51:34 PM #

Cool your blog, I add to my porno bookmarks. I enjoy to read your article when I play poker. Please thanks for share my porno site.

Reply

Rachel Dugommier
Rachel Dugommier France
6/29/2011 7:24:27 PM #

Merci pour cet article. C'est super int�ressant, j'adore Smile

Reply

Link
Link
7/3/2011 1:32:51 PM #

Great tips ! Thanks for the post. I plan on setting up a blog about poker in the next week or so. This will deff come in handy. Smile

Reply

Real estate
Real estate
7/10/2011 10:40:51 PM #

very nice post, i certainly love this website, keep on it.thanks

Reply

Sea fish supplier
Sea fish supplier
7/14/2011 6:33:13 AM #

I putted the default settings and it worked great! Thanks.

Reply

best suv
best suv
7/20/2011 10:21:42 PM #

I wonder if he cheated on her? I remember he cheated on his previous wife with JLO so it wouldn’t be surprising.

Reply

coquine
coquine
7/28/2011 12:40:44 PM #

Sa bouche et sa chatte me fait bander à mort, j'en veux encore

Reply

any dvd to avi
any dvd to avi
8/15/2011 1:09:55 AM #

"Download + convert" YouTube Videos in One Step

Reply

iphone case
iphone case
8/17/2011 3:21:05 PM #

very nice resource really good information i could find.. thank you so much for your effort to write this post. WIll keep following other posts you have posted.

Reply

Daniel
Daniel
8/19/2011 5:43:23 AM #

This site has Become Gradually fill to me the previous couple of days and nights. I Thought It Was That likely your laptop or computer, However, Our sessions with your sister at once, and I or she Said Something similar is happening to your ex. Almost all the concepts?

Reply

William Calder
William Calder
8/24/2011 12:08:01 PM #

Wonderful goods from you, man. I've understand your stuff previous to and you are just extremely magnificent. I actually like what you have acquired here, really like what you're saying and the way in which you say it. You make it enjoyable and you still take care of to keep it smart. I cant wait to read much more from you. This is actually a great web site.

Reply

k&#246;p billiga f&#246;nster
köp billiga fönster
8/29/2011 8:27:44 PM #

Great topic, I am impressed with your writing on this subject. Also I would like to praise your excellent  blog. I have used information from this site many times before and will continue to do so, as this is first class stuff you deliver.

Reply

final matrix compensation plan
final matrix compensation plan United States
9/9/2011 1:47:28 AM #

Exceedingly helpful many thanks, It is my opinion your readers might probably want a good deal more stories like that keep up the good effort.

Reply

Andrew Smith
Andrew Smith United States
9/10/2011 1:01:26 PM #

Genuinely illuminating many thanks, I think your trusty subscribers would certainly want way more blog posts like this continue the excellent content.

Reply

pensioenadvies
pensioenadvies
9/13/2011 12:05:52 AM #

This is a good and interesting file and I like the code that you have shared. Thanks for sharing and keep up the good work.

Reply

Tim Cole
Tim Cole United States
9/13/2011 8:01:33 AM #

Genuinely helpful cheers, I do think your current audience would certainly want further blog posts such as this carry on the good work.

Reply

Adirondack II
Adirondack II
10/30/2011 2:25:57 AM #

A true friend is someone who reaches for your hand and touches your heart.

Reply

Adirondack Boot sale
Adirondack Boot sale
10/30/2011 4:13:02 AM #

In order to be irreplaceable one must always be different.

Reply

angry birds help
angry birds help
10/31/2011 1:48:46 PM #

I'm truly impress with your blog, lot of educational and interesting info you will learn from this blog. Keep it up!

Reply

Bill
Bill
11/8/2011 7:40:35 PM #

The blog is absolutely fantastic. Lots of great information and inspiration, both of which we all need. Thanks

Reply

thefitnessguy
thefitnessguy
11/12/2011 12:24:38 AM #

Thanks for the ideas shared in your blog. Yet another thing I would like to mention is that fat loss is not exactly about going on a dietary fads and trying to get rid of as much weight as possible in a few months. The most effective way in losing weight is by consuming it gradually and right after some basic tips which can make it easier to make the most from a attempt to shed pounds. You may know and be following many of these tips, yet reinforcing know-how never hurts.

Reply

Solar Module Frame
Solar Module Frame
11/27/2011 9:29:36 PM #

China <a href="http://www.chinadavinsolar.com/">aluminum solar module frame</a> and <a href="http://www.chinadavinsolar.com/">aluminum profile</a> manufacturer. We can supply all kind of aluminum extrusion profile. We annual produce 8,000,000 sets solar module frame and 200,000t aluminium profile for our customer.

Reply

There are some interesting points in time in this article but I don�t know if I see all of them center to heart. There is some validity but I will take hold opinion until I look into it further. Good article , thanks and we want more! Added to FeedBurner as well

Reply

360storage
360storage United States
5/18/2015 3:00:06 PM #

Almost all of the responses on this website dont make sense.

Reply

cairns commercial solar
cairns commercial solar United States
5/18/2015 3:03:24 PM #

Your article sparked much interest at my office. All my colleagues were debating as I listened. I liked your article more than the big debate.

Reply

Philix
Philix United States
11/19/2015 6:35:10 AM #

Good Website

Reply

Philix
Philix United States
11/19/2015 10:27:41 PM #

Ace Web Site.

Reply

Jeannine Mischel
Jeannine Mischel United States
1/15/2016 3:47:56 AM #

Let me be the first to say: Congrats, Neil! I've been following this site from day one, and have loved every single day of awesomeness that it has delivered. You deserve all the success coming your way. Keep it up!AWESOME!

Reply

Maria Robinett
Maria Robinett United States
1/15/2016 4:15:22 AM #

Hey, congratulations Neil. This site really is something special and it's been a pleasure to share it with my readership too. Looking forward to future awesome things, and I'll send any suggestions that are sufficiently awesome.

Reply

Mollie Limbo
Mollie Limbo United States
1/15/2016 4:51:20 AM #

yeah, except the "dolphin saving you" one

Reply

Russell Schlappi
Russell Schlappi United States
1/15/2016 5:07:48 AM #

I can't wait to read this masterpiece. Ordering off the menu at fast food restaurants and old dangerous playground equipment have to be in the book!

Reply

Rueben Derosa
Rueben Derosa United States
1/15/2016 5:44:12 AM #

the style of keeping you connected with so many things of different types is awesome and you find it interesting everytime.

Reply

Vonnie Liter
Vonnie Liter United States
1/15/2016 5:53:58 AM #

Congrats! So glad to see this site getting the recognition it deserves, the world can always use a little more awesome.

Reply

Georgeanna Carrigg
Georgeanna Carrigg United States
1/15/2016 7:07:02 AM #

Let me be the first to say: Congrats, Neil! I've been following this site from day one, and have loved every single day of awesomeness that it has delivered. You deserve all the success coming your way. Keep it up!AWESOME!

Reply

Cassey Sellner
Cassey Sellner United States
1/15/2016 7:44:48 AM #

Thaaaat IS awesome! lol hehe

Reply

Vonnie Liter
Vonnie Liter United States
1/15/2016 8:54:44 AM #

I can't wait to read this masterpiece. Ordering off the menu at fast food restaurants and old dangerous playground equipment have to be in the book!

Reply

cairns commercial solar
cairns commercial solar United States
2/1/2016 2:49:04 PM #

How can I get new free layouts for blogspot, without using Webfetti?

Reply

link building
link building United States
2/9/2016 8:50:08 PM #

Fabulous! This is simply amazing! Not merely quality, yet also useful information. Which is rare to come by presentlies! I have to state that I am truly amazed and also will definitely return once more if you maintain the reputable and worth of the content at this level, or maybe acquire it on the following degree. Regards, from the bottom of my heart, thanks for your time! God bless!

Reply

backlinks for my website
backlinks for my website United States
3/26/2016 3:20:30 PM #

Merely incredible! I understand you have placed a great deal of effort into this as well as I really wanted to tell you just how thankful I am! Hope you put out also much more outstanding things in the close to future and I will certainly come back as well as review it!

Reply

Willard Chaffin
Willard Chaffin United States
3/28/2016 4:17:26 AM #

You made some first rate factors there. I regarded on the internet for the problem and found most individuals will go together with together with your website.

Reply

Empresa con más de 30 de años de experiencia al servicio de nuestros clientes, tanto instaladores como particulares. Estamos especializados en la venta de material de fontanería, calefacción, saneamiento, energía solar, tratamientos de aguas, aire acondicionado, etc. Contamos con profesionales altamente cualificados y acreditados que ofrecen la mejor calidad en nuestros servicios.

Reply

POŻYCZKI POZABANKOWE
POŻYCZKI POZABANKOWE United States
6/23/2016 8:01:42 AM #

Pożyczka pozabankowa Aasa Polska

Reply

pożyczki pozabankowe
pożyczki pozabankowe United States
6/23/2016 8:02:10 AM #

Pożyczka gotówkowa

Reply

POŻYCZKA
POŻYCZKA United States
6/23/2016 8:02:10 AM #

Pożyczka gotówkowa Alior Bank

Reply

pożyczka pozabankowa
pożyczka pozabankowa United States
6/23/2016 8:02:12 AM #

Pożyczka gotówkowa Alior Bank

Reply

pożyczka
pożyczka United States
6/23/2016 8:02:12 AM #

POŻYCZKI

Reply

POŻYCZKA
POŻYCZKA United States
6/23/2016 8:03:34 AM #

pożyczka pozabankowa

Reply

pożyczki
pożyczki United States
6/23/2016 8:08:15 AM #

pożyczki pozabankowe

Reply

pożyczka
pożyczka United States
6/23/2016 8:08:18 AM #

Pożyczka pozabankowa Aasa Polska

Reply

POŻYCZKA POZABANKOWA
POŻYCZKA POZABANKOWA United States
6/23/2016 8:36:31 AM #

Pożyczka gotówkowa Soho Credit

Reply

pożyczka
pożyczka United States
6/23/2016 9:04:15 AM #

Pożyczka pozabankowa Net Credit

Reply

REJESTRACJA DOMEN
REJESTRACJA DOMEN United States
6/25/2016 6:02:13 AM #

Rejestracja domen - Przedłużanie domen - Transfer domen

Reply

rejestracja domen
rejestracja domen United States
6/25/2016 6:13:58 AM #

BEZPŁATNE KONTO HOSTINGOWE 5GB DLA KAŻDEJ REJESTRACJI NOWEJ POLSKIEJ DOMENY!

Reply

rejestracja domen
rejestracja domen United States
6/25/2016 6:14:25 AM #

Transfer domen

Reply

Rejestracja Domen
Rejestracja Domen United States
6/25/2016 6:14:25 AM #

Rejestracja domen - Przedłużanie domen - Transfer domen

Reply

Rejestracja Domen
Rejestracja Domen United States
6/25/2016 6:14:25 AM #

Rejestracja Domen

Reply

domeny
domeny United States
6/25/2016 6:14:25 AM #

Odzyskiwanie domen

Reply

REJESTRACJA DOMEN
REJESTRACJA DOMEN United States
6/25/2016 6:15:44 AM #

Zamówienie domeny

Reply

Rejestracja Domen
Rejestracja Domen United States
6/25/2016 6:19:50 AM #

Rezerwacja domen Rejestracja domen

Reply

DOMENY
DOMENY United States
6/25/2016 6:19:51 AM #

Odzyskiwanie domen

Reply

REJESTRACJA DOMEN
REJESTRACJA DOMEN United States
6/25/2016 6:47:20 AM #

Rezerwacja domen Rejestracja domen

Reply

DOMENY
DOMENY United States
6/25/2016 7:21:07 AM #

Rejestracja Domen

Reply

Dinah Dicamillo
Dinah Dicamillo United States
7/22/2016 11:41:45 PM #

I’m now not positive the place you are getting your info, but good topic. I must spend a while finding out much more or working out more. Thank you for fantastic information I used to be on the lookout for this info for my mission.

Reply

Sharen Mitsdarffer
Sharen Mitsdarffer United States
7/26/2016 7:54:11 PM #

Seriedad en el servicio.- Intentamos dar respuesta en menos de 24 horas en todo tipo de reparación incidencias y tratar cada incidencia con seriedad y preocupación por el cliente y su avería. Experiencia.- Contamos con más de 40 años de experiencia de nuestros técnicos en el sector de la asistencia técnica reparación de frigoríficos. LA VISITA DEL TECNICO ES GRATIS, gracias a que el Servicio Técnico de Frigoríficos Aeg ofrece a sus clientes más de 40 centros de servicio en toda la Comunidad de Madrid.

Reply

James Fly
James Fly United States
7/29/2016 2:49:39 PM #

This is such a great site come check out our new free Dating web site would wide fined your true love at http://youllfindlove.com/

Reply

United States
8/20/2016 9:50:36 PM #

I like to say that it's nice to reach your site looking  through web. your post is very interesting for all of us .

Reply

Dirk Caroway
Dirk Caroway United States
8/25/2016 4:30:27 AM #

Hopefully you can make a blog dicussing the smart house planning using available recent technology equiptments for houses

Reply

30kw solar panel system
30kw solar panel system United States
9/29/2016 10:06:43 AM #

<p>It seems as though small businesses have been all but abandoned<br />by the <a href="www.samp-thg.de/index.php; rel="nofollow">medical insurance travel</a> earth and quit them to fend for themselves.</p>

Reply

Andrew Pelt
Andrew Pelt United States
10/18/2016 2:44:34 AM #

Bonjour � vous, j'appr�cie votre site et je tenais � vous le dire ! bonne continuation !

Reply

being healthy
being healthy United States
11/12/2016 4:11:56 PM #

Reply

Robt Bengelsdorf
Robt Bengelsdorf United States
1/1/2017 5:37:13 PM #

Over the internet, you will be able to know about the craze of people for mobile applications. Paper Toss: We all need a little fun in our lives and most of us get bored from time to time. This Burnaby mobile app, Richmond android development is really as significant as the Swiss knife for each type of traveler. You can edit contrast and exposure and make other changes that you would expect to find on a desktop application.

Reply

Rasheeda Quintanilla
Rasheeda Quintanilla United States
2/27/2017 5:38:34 PM #

I just wanted to point out that Sweeny Probate law is the greatest!  I had a wonderful experience with my estate planning and probate needs. They saved me a bunch of money and I just wanted to let everyone know!  Thank you.

Reply

Newton Sroczynski
Newton Sroczynski United States
3/29/2017 8:38:58 AM #

Greetings, Could I grab your own photograph and make use of it on my own blog page?

Reply

Kenny Waitz
Kenny Waitz United States
4/2/2017 5:09:35 PM #

please continue to write and work on your website

Reply

Reginia Landey
Reginia Landey United States
4/2/2017 5:10:12 PM #

Great read and I just wanted to wish you luck in the future.

Reply

download google play apk free
download google play apk free United States
4/6/2017 1:30:04 AM #

you can also fetch apk from Google Play here : http://www.apksmart.com

Reply

play store apk android
play store apk android United States
4/12/2017 1:47:34 PM #

I have another website could grab apk from Google Play: http://www.apksmart.com

Reply

download google play apk
download google play apk United States
4/19/2017 1:26:56 PM #

check out this service, it also may download apk directly from Google Play: http://www.apksmart.com

Reply

Music
Music United States
8/29/2017 7:56:47 AM #

I always follow the content of your site

Reply

tratamiento para el acne
tratamiento para el acne United States
10/5/2017 12:05:33 PM #

Reply

adios espinillas
adios espinillas United States
10/5/2017 2:44:23 PM #

I really like your blog.. very nice colors & theme. Did you make this website yourself or did you hire someone to do it for you? Plz answer back as I'm looking to construct my own blog and would like to know where u got this from. cheers

Reply

granos
granos United States
10/5/2017 10:52:05 PM #

Reply

Clicking Here
Clicking Here United States
5/4/2018 2:10:09 AM #

I just want to say I'm new to weblog and honestly savored you're website. Most likely I’m planning to bookmark your site . You amazingly come with amazing stories. Cheers for sharing with us your webpage.

Reply

Rufus Nakanishi
Rufus Nakanishi United States
7/18/2018 6:48:41 PM #

What’s up, after reading this awesome piece

Reply

Elliott Murrah
Elliott Murrah United States
7/20/2018 1:17:04 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Enrique Barz
Enrique Barz United States
7/20/2018 2:09:07 AM #

It?s hard to come by knowledgeable people on this subject, however, you

Reply

Frederick Wentzell
Frederick Wentzell United States
7/20/2018 9:38:27 PM #

What’s up, after reading this awesome piece

Reply

Perry Toste
Perry Toste United States
7/20/2018 10:45:04 PM #

It?s hard to come by knowledgeable people on this subject, however, you

Reply

Graciela Mari
Graciela Mari United States
7/20/2018 11:38:36 PM #

Awesome! Its in fact amazing paragraph, I have got much clear idea regarding from this piece of

Reply

Ed Lamartina
Ed Lamartina United States
7/21/2018 7:59:22 AM #

I like the helpful info you provide in your articles. I will bookmark your weblog and check again here regularly.

Reply

Ta Callaway
Ta Callaway United States
7/22/2018 5:50:10 AM #

Awesome! Its in fact amazing paragraph, I have got much clear idea regarding from this piece of

Reply

Rupert Karstens
Rupert Karstens United States
7/22/2018 5:50:11 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Newton Callan
Newton Callan United States
7/23/2018 3:51:42 AM #

of writing i am as well delighted to share my know-how here with colleagues.

Reply

Emiko Issac
Emiko Issac United States
7/23/2018 3:51:44 AM #

I like the helpful info you provide in your articles. I will bookmark your weblog and check again here regularly.

Reply

Candace Galimi
Candace Galimi United States
7/31/2018 4:49:52 AM #

I conceive this web site has got some real good information for everyone

Reply

Isaura Reulet
Isaura Reulet United States
7/31/2018 4:49:53 AM #

I conceive this web site has got some real good information for everyone

Reply

Adriane Ringdahl
Adriane Ringdahl United States
8/2/2018 10:57:11 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Herta Hoster
Herta Hoster United States
8/2/2018 11:02:54 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Delores Byers
Delores Byers United States
8/2/2018 11:03:03 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Jina Mcleish
Jina Mcleish United States
8/2/2018 11:16:09 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Louis Shepeard
Louis Shepeard United States
8/2/2018 11:32:52 AM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Milan Bernaudo
Milan Bernaudo United States
8/2/2018 11:34:29 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Jesse Garczynski
Jesse Garczynski United States
8/2/2018 1:14:40 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Cyndy Plassmann
Cyndy Plassmann United States
8/2/2018 1:14:42 PM #

With thanks! Valuable information!

Reply

Moses Capelli
Moses Capelli United States
8/2/2018 1:36:48 PM #

With thanks! Valuable information!

Reply

Candra Sandino
Candra Sandino United States
8/2/2018 1:36:53 PM #

With thanks! Valuable information!

Reply

Rachal Patronella
Rachal Patronella United States
8/2/2018 2:18:08 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Bernetta Ferdin
Bernetta Ferdin United States
8/2/2018 2:44:15 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Tamesha Mcnurlen
Tamesha Mcnurlen United States
8/2/2018 2:47:23 PM #

With thanks! Valuable information!

Reply

Lenard Nimocks
Lenard Nimocks United States
8/2/2018 2:47:27 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Deena Hepa
Deena Hepa United States
8/2/2018 3:16:21 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Mindy Juariqui
Mindy Juariqui United States
8/2/2018 3:16:22 PM #

With thanks! Valuable information!

Reply

Phil Haskew
Phil Haskew United States
8/2/2018 3:19:14 PM #

With thanks! Valuable information!

Reply

Erin Bruney
Erin Bruney United States
8/2/2018 3:45:54 PM #

With thanks! Valuable information!

Reply

Ilona Ocus
Ilona Ocus United States
8/2/2018 5:48:06 PM #

With thanks! Valuable information!

Reply

Drew Rodney
Drew Rodney United States
8/2/2018 6:12:37 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Dawna Grealish
Dawna Grealish United States
8/2/2018 6:57:38 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Rosana Doelger
Rosana Doelger United States
8/2/2018 7:22:59 PM #

With thanks! Valuable information!

Reply

Phuong Boness
Phuong Boness United States
8/2/2018 10:43:28 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Georgiann Ledford
Georgiann Ledford United States
8/2/2018 10:43:46 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Reyna Flener
Reyna Flener United States
8/2/2018 11:09:18 PM #

With thanks! Valuable information!

Reply

Derrick Barrilleaux
Derrick Barrilleaux United States
8/2/2018 11:15:14 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Starla Meredith
Starla Meredith United States
8/3/2018 12:50:41 AM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Rhett Lapoint
Rhett Lapoint United States
8/3/2018 1:14:48 AM #

With thanks! Valuable information!

Reply

Monty Sabagh
Monty Sabagh United States
8/3/2018 3:00:08 AM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Torie Mehdi
Torie Mehdi United States
8/3/2018 3:33:01 AM #

With thanks! Valuable information!

Reply

Samara Mezzenga
Samara Mezzenga United States
8/3/2018 8:14:49 AM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Richelle Darosa
Richelle Darosa United States
8/3/2018 8:58:12 AM #

With thanks! Valuable information!

Reply

Bell Bogacki
Bell Bogacki United States
8/3/2018 9:14:23 AM #

With thanks! Valuable information!

Reply

Fletcher Cheas
Fletcher Cheas United States
8/3/2018 9:50:15 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Caren Emmer
Caren Emmer United States
8/3/2018 9:56:35 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Dominic Lampron
Dominic Lampron United States
8/3/2018 10:29:14 AM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Weston Rheinschmidt
Weston Rheinschmidt United States
8/3/2018 10:33:52 AM #

With thanks! Valuable information!

Reply

Carolynn Jecmenek
Carolynn Jecmenek United States
8/3/2018 11:05:08 AM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Werner Pertubal
Werner Pertubal United States
8/3/2018 11:32:24 AM #

With thanks! Valuable information!

Reply

Francesco Rawlinson
Francesco Rawlinson United States
8/3/2018 11:43:49 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Britt Miske
Britt Miske United States
8/3/2018 11:45:57 AM #

With thanks! Valuable information!

Reply

Mohammed Kalley
Mohammed Kalley United States
8/3/2018 12:49:57 PM #

With thanks! Valuable information!

Reply

Yahaira Arcoraci
Yahaira Arcoraci United States
8/3/2018 1:30:22 PM #

With thanks! Valuable information!

Reply

Shannan Dashem
Shannan Dashem United States
8/3/2018 4:07:25 PM #

With thanks! Valuable information!

Reply

Merlin Willcoxon
Merlin Willcoxon United States
8/3/2018 4:42:19 PM #

With thanks! Valuable information!

Reply

Augustine Abrantes
Augustine Abrantes United States
8/3/2018 7:40:35 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Charolette Ede
Charolette Ede United States
8/3/2018 7:49:06 PM #

With thanks! Valuable information!

Reply

Anja Pecatoste
Anja Pecatoste United States
8/3/2018 8:26:12 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Carmelina Aboshihata
Carmelina Aboshihata United States
8/3/2018 8:58:23 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Louis Karasek
Louis Karasek United States
8/3/2018 8:58:36 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Robbie Rahaman
Robbie Rahaman United States
8/3/2018 9:28:48 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Russ Whitsey
Russ Whitsey United States
8/3/2018 9:32:37 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Werner Pertubal
Werner Pertubal United States
8/4/2018 10:29:32 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Boyce Cos
Boyce Cos United States
8/4/2018 11:25:42 AM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Gerard Uliano
Gerard Uliano United States
8/4/2018 1:54:51 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Austin Branyon
Austin Branyon United States
8/4/2018 2:47:32 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Ciera Navo
Ciera Navo United States
8/4/2018 3:12:12 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Ernestine Kita
Ernestine Kita United States
8/4/2018 3:59:01 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Samual Malecha
Samual Malecha United States
8/4/2018 5:15:56 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Adam Pfingsten
Adam Pfingsten United States
8/4/2018 5:19:08 PM #

Don’t wear seat belts lest you drown in you own urine?

Reply

Felix Lacko
Felix Lacko United States
8/4/2018 6:05:40 PM #

With thanks! Valuable information!

Reply

Jamal Sulieman
Jamal Sulieman United States
8/4/2018 6:11:30 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Gerardo Mcvey
Gerardo Mcvey United States
8/4/2018 7:01:16 PM #

With thanks! Valuable information!

Reply

Taylor Exon
Taylor Exon United States
8/4/2018 7:57:29 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Saundra Kolis
Saundra Kolis United States
8/4/2018 8:52:01 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Janetta Hall
Janetta Hall United States
8/4/2018 10:56:37 PM #

Don’t wear seat belts lest you drown in your own urine?

Reply

Xavier Farnese
Xavier Farnese United States
8/4/2018 11:59:31 PM #

With thanks! Valuable information!

Reply

Molly Caddell
Molly Caddell United States
8/5/2018 6:45:05 PM #

With thanks! Valuable information!

Reply

Lavinia Pasvizaca
Lavinia Pasvizaca United States
8/5/2018 7:55:55 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Vincenzo Lozito
Vincenzo Lozito United States
8/5/2018 9:42:58 PM #

With thanks! Valuable information!

Reply

Winford Shoger
Winford Shoger United States
8/5/2018 9:43:08 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Kelvin Minasian
Kelvin Minasian United States
8/5/2018 11:05:10 PM #

Black on black in the Charger I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Foster Simonet
Foster Simonet United States
8/5/2018 11:17:38 PM #

With thanks! Valuable information!

Reply

Wilfred Tryba
Wilfred Tryba United States
8/6/2018 2:13:08 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Dominick Boldin
Dominick Boldin United States
8/6/2018 3:36:15 AM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini

Reply

Wanetta Mcnease
Wanetta Mcnease United States
8/10/2018 3:01:45 PM #

I’m quite certain I’ll learn lots of new stuff right http://bnuphoto.com

Reply

Phillis Gruell
Phillis Gruell United States
8/10/2018 3:36:29 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini https://bzp65.com/

Reply

Marion Eubank
Marion Eubank United States
8/10/2018 3:52:09 PM #

It?s hard to come by knowledgeable people on this subject, however, you https://bzp65.com/

Reply

Constance Wellspeak
Constance Wellspeak United States
8/10/2018 4:40:21 PM #

With thanks! Valuable information! https://yong79.com/

Reply

Rey Bresett
Rey Bresett United States
8/10/2018 4:50:19 PM #

I’m quite certain I’ll learn lots of new stuff right https://php665.com/

Reply

Erich Boghosian
Erich Boghosian United States
8/10/2018 4:52:29 PM #

This is a impressive story. Thanks! https://newone2017.com/

Reply

Alfredo Platko
Alfredo Platko United States
8/10/2018 4:55:22 PM #

This is a impressive story. Thanks! https://yong79.com/

Reply

Mason Beiswanger
Mason Beiswanger United States
8/10/2018 5:03:36 PM #

With thanks! Valuable information! https://php665.com/

Reply

Charise Vincik
Charise Vincik United States
8/10/2018 5:06:46 PM #

Black on black in the Charg I'm creepin' Rub me the right way, you might get a genie B.o.B, black Houdini https://newone2017.com/

Reply

Celestine Friske
Celestine Friske United States
8/10/2018 6:25:04 PM #

of writing i am as well delighted to share my know-how here with colleagues. https://miso7700.com/

Reply

Valeri Derr
Valeri Derr United States
8/11/2018 8:33:22 AM #

Hello. impressive job. I did not anticipate this. http://casinossir.com

Reply

Larita Follansbee
Larita Follansbee United States
8/11/2018 8:56:12 AM #

What’s up, after reading this awesome piece http://casinossir.com

Reply

Ismael Drevs
Ismael Drevs United States
8/13/2018 5:07:21 PM #

good stuff. I will make sure to bookmark your blog. https://bzp65.com/

Reply

Pinkie Breeze
Pinkie Breeze United States
8/13/2018 5:26:25 PM #

I have been checking out many of your stories and i can state pretty https://bzp65.com/

Reply

Lindsy Taboada
Lindsy Taboada United States
8/14/2018 7:50:55 AM #

Don’t wear seat belts lest you drown in your own urine? https://bzp65.com/

Reply

Boris Mochel
Boris Mochel United States
8/14/2018 8:10:35 AM #

I got what you mean,saved to fav, very decent site. https://bzp65.com/

Reply

Karyn Alawdi
Karyn Alawdi United States
8/14/2018 6:10:55 PM #

I got what you mean,saved to fav, very decent site. https://bzp65.com/

Reply

Ciera Laclaire
Ciera Laclaire United States
8/14/2018 6:30:39 PM #

I conceive this web site has got some real good information for everyone https://bzp65.com/

Reply

Pingbacks and trackbacks (2)+

Add comment

biuquote
  • Comment
  • Preview
Loading

Rel=Me

Month List

RecentComments

Comment RSS