Jul 5, 2012 at 7:10 PM
Edited Jul 5, 2012 at 8:07 PM

I upgraded a 2.0 blog to the newest 2.6 I can see now that there is a new provider for the storage

<add storageVariable="BlogEngine" description="Sql Database Provider" name="DbBlogProvider" type="BlogEngine.Core.Providers.DbFileSystemProvider, BlogEngine.Core"/>

The issue is that since I upgraded I can't see the images from my 2.0 version despite having copied across the app_data folder's content. 

Is there a way to "convert" those images from the app_data folder or should I change this provider to the UNCBlogProvider ? (BTW I tried but I am bit struggling with the UNC Path)

Update: it appears that I'll really need a way to copy my images because my hosting company just told me that 

The UNC Path for the specified folder is only available in our internal network.  As the customer you would not be able to access the path using UNC. 
Jul 6, 2012 at 7:26 PM

Any clue ? I definitely can't use the UNC path, my hosting provider just confirmed that, therefore I need a way to automate the copy of the images to the db in order of being able to see the images embedded in the old posts. 

Jul 6, 2012 at 7:50 PM

I don't think your images not displayed because of new storage provider, by default it uses XML and App_Data folder as usual.

If you look at the page source (HTML) - what image path looks like and what it should be? If you have public URL for your site it would be helpful.

Jul 6, 2012 at 8:17 PM
Edited Jul 6, 2012 at 8:19 PM


You're probably right. I just found out that when browsing "by hand" the image I am getting a message I have never seen before

The blog's entry I am referring to is

And the image which should come up is on the server BUT when browsing it it says 

The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.

Never seen that before.

Jul 6, 2012 at 8:39 PM
Edited Jul 6, 2012 at 8:41 PM

You can not access image in app_data directly for security reasons. For example you'll get same error trying this path:

But using axd handler to serve it works fine:

So you need to change image paths from direct image links where it was used to axd handlers.

Jul 6, 2012 at 8:55 PM

Not sure what you mean by "you need to change image paths from direct image links where it was used to axd handlers"

Prior to updating from 2.0 to 2.6 our blog was working fine. Looking at we could see the picture which we know is on our server: So what should I be doing to make it working such as 

Jul 6, 2012 at 9:39 PM

The image you using as working example is not in app_data folder, image that not working is inside app_data. You need either use folder outside app_data for images or have image path changed from "App_Data/files/2012/2/picBlueTienda.jpg" to "image.axd?picture=/2012/2/picBlueTienda.jpg".

Jul 6, 2012 at 10:03 PM
Edited Jul 6, 2012 at 10:10 PM

The PostContent field of table be_posts already shows "image.axd?picture=/2012/2/picBlueTienda.jpg" . Keep in mind that this post was published under BE 2.0 and it was working fine. I also tried "/blog/es/image.axd?picture=/2012/2/picBlueTienda.jpg", as it was originally, I am in a subfolder, but it didn't work neither (see this post)

Jul 7, 2012 at 6:08 AM

You have this record in database:


It translates to this path:

Which brings image from:

And everything works fine. So for image that does not work, you need record look like:


And you need picture to exist in:


Jul 7, 2012 at 3:11 PM
Edited Jul 7, 2012 at 3:19 PM

When you say

Which brings image from:
This is not true as the storageVariable provider is set to database, remember I can not use the UNCBlogprovider. The picDiprolab.jpg is stored in the database not in the directory, at least it is what I think. I saw it in the be_FileStoreFiles table. I do not even have a app_data/files/2012/07 folder
This picture 
is really stored in that directory. It was published with BE 2.0 
I just a published a new post here and the image does not show up in the app_data directory but it appears just fine on the post
Jul 10, 2012 at 5:37 AM

In case you were not aware, there are actually 3 BlogFileSystemProviders.

  1. XmlFileSystemProvider (tied to App_Data, and works the same as BE 2.5, 2.0, 1.6, etc)
  2. DbFileSystemProvider (only works with SQL Server, and not other DB types)
  3. UNCFileSystemProvider (is for storing images/files on the file system, somewhere other than App_Data)

The providers in the web.config file are actually not named very clearly.  These 3 providers above can be found in the web.config file:

  1. <add description="Xml Blog Provider" name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlFileSystemProvider, BlogEngine.Core"/>
    (the name here is XmlBlogProvider, and would be more clear if named XmlFileSystemProvider")
  2. <add storageVariable="BlogEngine" description="Sql Database Provider" name="DbBlogProvider" type="BlogEngine.Core.Providers.DbFileSystemProvider, BlogEngine.Core"/>
    (the name here is DbBlogProvider, and would be more clear if named "DbFileSystemProvider")
  3. <add storageVariable="\\UNCPath\BlogFiles" description="UNC Path Provider" name="UNCBlogProvider" type="BlogEngine.Core.Providers.UNCFileSystemProvider, BlogEngine.Core" />
    (the name here is UNCBlogProvider, and would be more clear if named "UNCFileSystemProvider")

You probably want to use the XmlFileSystemProvider, which was the one that you were using before in BE 2.0.  Your images are in the App_Data folder.  image.axd will retrieve the images from the App_Data folder if you set your default blogFileSystemProvider to the XmlFileSystemProvider.  In the above example, the name of XmlFileSystemProvider is (confusedly) "XmlBlogProvider".  So your web.config file would look like:

<blogFileSystemProvider defaultProvider="XmlBlogProvider">

If you were using the DbFileSystemProvider when you created this post, then the Image is probably stored in the be_FileStoreFiles DB table (stored as binary data).  I would switch to the XmlFileSystemProvider (aka XmlBlogProvider), and that *should* bring back images from your old posts.  Then any recent posts you made which may have stored the images in be_FileStoreFiles, you'll probably want to re-upload into the recent blog posts, and they should get stored in the App_Data folder instead of the DB.

Btw, I'm assuming you don't mind storing your images in the App_Data folder.  If you prefer to store all your images in the DB, then you can use the "change file system provider" tool described below ... which would transfer your existing images in the App_Data folder into the DB.  Unless you have a reason for doing this, I personally think it's preferable to keep the images stored in the App_Data folder.

Change File System Provider - as a sidenote, in the control panel, at the bottom of the Advanced settings page is a File Storage Management section.  This area allows you to either backup all your images to a ZIP file, or you can even switch File Storage Providers.  I haven't tested this out, but presume it works.  You shouldn't need to use this for your purposes.  Just thought I'd point out that this exists.

Jul 10, 2012 at 3:38 PM
Edited Jul 13, 2012 at 3:29 AM


You were right, choosing XmlBlogProvider as a blogFileSystemProvider made the trick. As you said I somehow got confused with the naming. 

Thank you