Dallas: There are many reasons why you must avoid hosting WordPress on a Windows/IIS server, but sometimes you have no alternative. One of the most general issues when getting a WordPress Website up and running on IIS is that the image uploader tends to be broken out of the box.
The cause and solution for this difficulty can vary significantly, but usually it has to do with file system permissions on the Windows box. If you are totally unable to upload an image through WordPress and are greeted with an error along the lines of:
“The uploaded file could not be moved to C:\Some\Directory”
There is a strong chance that the following steps will correct the issue for you.
Step 1) wp-content permissions
The first step is to alter the folder permissions on the wp-content folder of your WordPress installation. To do that, navigate to your blog installation directory and right click on the wp-content folder and choose “Properties”.
Next, click the Security tab.
On the wp-content properties dialog, click the Edit button to alter the file permissions. On the following screen, search for an account labeled IUSR. Note that this is not the same as IIS_IUSRS. If IUSR exists, select it and grant it “Modify” permissions if it does not have them already. If the account does not exist, click the “Add” button to add it, and then grant it “Modify” permissions. When you’re finished hit OK.
Step 2) PHP Temp folder permissions
The second step is to set the folder permissions on the Temp directory that PHP uses when uploading images. By default, this directory is C:\Windows\Temp but if your php.ini file was edited to modify that folder, use the modified directory. Navigate to C:\Windows and right click the “Temp” folder then choose “Properties”.
Next click the Security tab.
On the Temp properties dialog, click the Edit button to change the file permissions. On the following screen, try to find an account labeled IIS_IUSRS. Note that this is different than the steps above. If IIS_IUSRS exists, select it and grant it “Read” permissions. If the account does not exist, click the “Add” button to add it, then grant it “Read” permissions. When you’re finished hit OK.
That should care for the problem in most cases. That said, there are many different situations that can create this issue.
For more information click here.