OK, this seems to have been asked a few times and all the answers I have found just seem to say "check your permissions".
Well, I have done. IIS_IUSRS has Full Control right from wwwroot down to the runtime folder. I have also removed the .htaccess file. I can’t see what other permissions there are. I am running IIS7 on Windows 7 Enterprise and have php 5.3.10 installed and working.
I can not say what is the reason, but maybe this will help.
Below is the code which makes this check is in the framework/base/CApplication.php:
public function setRuntimePath($path)
{
if(($runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath))
throw new CException(Yii::t('yii',
'Application runtime path "{path}" is not valid. Please make sure it is a directory writable by the Web server process.',
array('{path}'=>$path)));
$this->_runtimePath=$runtimePath;
}
You can try a simple php file which does the same to find what fails - realpath($path) or is_dir or is_writable.
Thanks for your help. I got a clue from some more extensive Googling where somebody had suggested that a share might be causing the issue. There was a share on wwwroot for some reason and removing this (and checking the other folders below this) seems to have resolved the issue.