Frage Umbraco 7.0.2 auf Azure Cloud Service - Der Zugriff auf den Pfad 'E: \ siteroot \ 1 \ config \ applications.config' wird verweigert


Ich habe einen Cloud-Service auf Azure und ich versuche, Umbraco als VirtualApplication zur WebRole hinzuzufügen:

ServiceDefinition.csdef:

...
 <Site name="Web">
        <VirtualApplication name="cms" physicalDirectory="../../../umbracocms" />
...

Es läuft perfekt auf meinem lokalen Rechner im Emulator, aber wenn ich das Paket auf den Azure Cloud Service stelle, kann ich nicht auf die Umbraco-Seite zugreifen, es wird der folgende Fehler zurückgegeben:

Access to the path 'E:\sitesroot\1\config\applications.config' is denied.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.UnauthorizedAccessException: Access to the path 'E:\sitesroot\1\config\applications.config' is denied. 

Stack Trace: 

[UnauthorizedAccessException: Access to the path 'E:\sitesroot\1\config\applications.config' is denied.]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +216
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +1430
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +205
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync) +112
   System.Xml.XmlWriterSettings.CreateWriter(String outputFileName) +7430688
   System.Xml.Linq.XDocument.Save(String fileName, SaveOptions options) +189
   Umbraco.Core.Services.SectionService.LoadXml(Action`1 callback, Boolean saveAfterCallback) +253
   Umbraco.Core.EnumerableExtensions.ForEach(IEnumerable`1 items, Action`1 action) +148
   Umbraco.Core.CoreBootManager.Complete(Action`1 afterComplete) +116
   Umbraco.Web.WebBootManager.Complete(Action`1 afterComplete) +337

[HttpException (0x80004005): Access to the path 'E:\sitesroot\1\config\applications.config' is denied.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +12582201
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +175
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

[HttpException (0x80004005): Access to the path 'E:\sitesroot\1\config\applications.config' is denied.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12599232
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12438981

Ich habe bereits versucht, eine Startaufgabe ohne Erfolg hinzuzufügen:

<Startup priority="1">
  <Task commandLine="startup.bat" executionContext="elevated" taskType="simple" />
</Startup>

startup.bat:

echo "starting startup task" >> log.txt
%windir%\system32\Icacls.exe ..\* /T /grant "Network Service":(F) > log.txt

Und um Berechtigungen für das OnStart-Ereignis der Webrolle hinzuzufügen, wie hier beschrieben URL. Es hat auch nicht funktioniert.

Wenn ich den Remote-Desktop direkt in die Instanz verlese, existiert der Ordner E: \ sitesroot \ nicht.


5
2018-01-27 13:55


Ursprung


Antworten:


Für diejenigen, die es gerne wissen möchten. Ich habe das Problem gefunden. Das Skript startup.bat wurde nicht erfolgreich ausgeführt. Ich konnte es herausfinden, indem ich es in folgendes änderte:

startup.bat

%windir%\system32\Icacls.exe ..\..\* /T /grant "Network Service":(F) > c:\\logStart.txt 2>&1
exit /b 0

Und das Problem bezog sich auf die Kodierung der Datei. Die Datei wurde nur erfolgreich ausgeführt, nachdem notepad ++ verwendet und die Codierung in "UTF-8 ohne BOM" geändert wurde


1
2018-01-29 03:21