I
believe the problem right here is that everything is running under Network
Service account right now and the Network Service account does not have the
write access to E:\sitesroot\0\data\umbraco.config:
After
I manually grant Network Service full control to this folder, the error went
away. So my question is that is there a particular reason to delete
umbraco.config file? Or can umbraco stuff been moved to the RoleTemp folder
instead of application’s virtual directory? Your application will work fine
with Azure 1.2 SDK or before, or using IIS Core in SDK 1.3 or later, which the
application will be hosted under WaWebhost.exe instead of W3wp.exe (https://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx);
however, it is not recommended to use IIS Core anymore.
Every time you publish a page, the cache is updated. Getting information from umbraco.config is much faster than getting it from the data from the database every time, so not caching means a performance hit.
Essentially, the application pool user (in your case, Network service) needs write access to this folder all the time.
Access to the path 'E:\sitesroot\0\data\umbraco.config' is denied.
Working on using Umbraco in Microsoft Azure and I get the following message when I go to post an article or make any changes.
I contacted Microsoft and got the following feedback from them:
How are you? From the dump files, the following is the exception:
0:026> !pe
Exception object: 0000000020617e70
Exception type: System.UnauthorizedAccessException
Message: Access to the path 'E:\sitesroot\0\data\umbraco.config' is denied.
InnerException: <none>
StackTrace (generated):
<none>
StackTraceString: <none>
HResult: 80070005
And the following is the call stack at the time of exception:
0:026> k
Child-SP RetAddr Call Site
00000000`1dabdc20 000007fe`f12a6e39 kernel32!RaiseException+0x39 [d:\longhorn\base\win32\client\xcpt.c @ 134]
00000000`1dabdcf0 000007fe`f12a9e06 clr!RaiseTheExceptionInternalOnly+0x363 [f:\dd\ndp\clr\src\vm\excep.cpp @ 3076]
00000000`1dabde20 000007fe`efc38187 clr!IL_Throw+0x146 [f:\dd\ndp\clr\src\vm\jithelpers.cpp @ 5198]
00000000`1dabdfd0 000007fe`ef803f1a mscorlib_ni!System.IO.__Error.WinIOError(Int32, System.String)+0xc4bb07 [f:\dd\ndp\clr\src\BCL\System\IO\__Error.cs @ 192]
00000000`1dabe020 000007ff`029a75ff mscorlib_ni!System.IO.File.SetAttributes(System.String, System.IO.FileAttributes)+0x17a [f:\dd\ndp\clr\src\BCL\System\IO\File.cs @ 558]
00000000`1dabe090 000007ff`029a7284 umbraco!umbraco.content.DeleteXmlCache()+0x5f
00000000`1dabe0d0 000007fe`ecb385c0 umbraco!umbraco.content.PersistXmlToFile(System.Xml.XmlDocument)+0x114
00000000`1dabe180 000007fe`ecb2337a System_Web_ni!System.Web.HttpApplication+SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+0x50 [f:\dd\ndp\fx\src\xsp\System\Web\HttpApplication.cs @ 3050]
00000000`1dabe1e0 000007fe`ed296929 System_Web_ni!System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)+0x10a [f:\dd\ndp\fx\src\xsp\System\Web\HttpApplication.cs @ 2227]
00000000`1dabe290 000007fe`ed1d2475 System_Web_ni!System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)+0x6d9 [f:\dd\ndp\fx\src\xsp\System\Web\HttpApplication.cs @ 3933]
00000000`1dabe350 000007fe`ed1abcb6 System_Web_ni!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback)+0x85 [f:\dd\ndp\fx\src\xsp\System\Web\HttpApplication.cs @ 2760]
00000000`1dabe3a0 000007fe`ed28a1cf System_Web_ni!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)+0x2c6 [f:\dd\ndp\fx\src\xsp\System\Web\HttpRuntime.cs @ 1436]
00000000`1dabe440 000007fe`ed289df2 System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)+0x3bf [f:\dd\ndp\fx\src\xsp\System\Web\Hosting\IPipelineRuntime.cs @ 446]
00000000`1dabe5e0 000007fe`ed289231 System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)+0x22 [f:\dd\ndp\fx\src\xsp\System\Web\Hosting\IPipelineRuntime.cs @ 385]
00000000`1dabe630 000007fe`f127cae7 System_Web_ni!DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32)+0x51
00000000`1dabe6c0 000007fe`f0e0ba59 clr!UMThunkStubAMD64+0x77 [f:\dd\ndp\clr\src\vm\amd64\umthunkstub.asm @ 401]
00000000`1dabe750 000007fe`f0e0c940 webengine4!W3_MGD_HANDLER::ProcessNotification+0x79 [f:\dd\ndp\fx\src\xsp\webengine\mgdhandler.cxx @ 543]
00000000`1dabe780 000007fe`f0e093fd webengine4!W3_MGD_HANDLER::DoWork+0x310 [f:\dd\ndp\fx\src\xsp\webengine\mgdhandler.cxx @ 488]
00000000`1dabe7d0 000007fe`f0e099f4 webengine4!RequestDoWork+0x42d [f:\dd\ndp\fx\src\xsp\webengine\mgdeng.cxx @ 536]
00000000`1dabe870 000007fe`f32e246a webengine4!CMgdEngHttpModule::OnExecuteRequestHandler+0x24 [f:\dd\ndp\fx\src\xsp\webengine\mgdmodule.hxx @ 281]
The following is DeleteXmlCache method under Reflector:
private void DeleteXmlCache()
{
lock (_readerWriterSyncLock)
{
if (File.Exists(this.UmbracoXmlDiskCacheFileName))
{
try
{
File.SetAttributes(this.UmbracoXmlDiskCacheFileName, FileAttributes.Normal);
}
finally
{
File.Delete(this.UmbracoXmlDiskCacheFileName);
}
}
}
}
The event log shows the following:
Event code: 4011
Event message: An unhandled access exception has occurred.
Event time: 4/13/2011 2:34:29 AM
Event time (UTC): 4/13/2011 2:34:29 AM
Event ID: 2850999c4ad4485e97a6aaf8ac4bb311
Event sequence: 496
Event occurrence: 13
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1273337584/ROOT-1-129471321894563036
Trust level: Full
Application Virtual Path: /
Application Path: E:\sitesroot\0\
Machine name: RD00155D32B43C
Process information:
Process ID: 2268
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Request information:
Request URL: http://umbraco-njection.cloudapp.net/news/2011/1/29/lorem-ipsum-dolor-sit-amet-6
Request path: /news/2011/1/29/lorem-ipsum-dolor-sit-amet-6
User host address: 12.190.158.6
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Custom event details:
I believe the problem right here is that everything is running under Network Service account right now and the Network Service account does not have the write access to E:\sitesroot\0\data\umbraco.config:
After I manually grant Network Service full control to this folder, the error went away. So my question is that is there a particular reason to delete umbraco.config file? Or can umbraco stuff been moved to the RoleTemp folder instead of application’s virtual directory? Your application will work fine with Azure 1.2 SDK or before, or using IIS Core in SDK 1.3 or later, which the application will be hosted under WaWebhost.exe instead of W3wp.exe (https://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx); however, it is not recommended to use IIS Core anymore.
Anything I can do to resolve this.
Umbraco.config is a cache of the entire site (site xml)
When you "Rebulish Entire Site". it's regenerated.
I'm not rebuilding the entire site. When I go to add a blog post, the error pops up. Is there a way to turn off caching and what is the downsite?
Every time you publish a page, the cache is updated.
Getting information from umbraco.config is much faster than getting it from the data from the database every time, so not caching means a performance hit.
Essentially, the application pool user (in your case, Network service) needs write access to this folder all the time.
Take a look here at what rights that user needs:
http://our.umbraco.org/wiki/install-and-setup/set-umbraco-folder-permissions-from-command-line
is working on a reply...