Car*_*ira 5 c# umbraco azure umbraco7 azure-cloud-services
我在Azure上运行了一个Cloud Service,我正在尝试将Umbraco作为VirtualApplication添加到WebRole:
ServiceDefinition.csdef中:
...
<Site name="Web">
<VirtualApplication name="cms" physicalDirectory="../../../umbracocms" />
...
Run Code Online (Sandbox Code Playgroud)
它在模拟器上的本地计算机上运行完美,但是当我将程序包部署到Azure Cloud Service时,我无法访问Umbraco页面,它会返回以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
[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
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加启动任务无济于事:
<Startup priority="1">
<Task commandLine="startup.bat" executionContext="elevated" taskType="simple" />
</Startup>
Run Code Online (Sandbox Code Playgroud)
的startup.bat:
echo "starting startup task" >> log.txt
%windir%\system32\Icacls.exe ..\* /T /grant "Network Service":(F) > log.txt
Run Code Online (Sandbox Code Playgroud)
并且还要按照此处的URL指示,在Web角色的OnStart事件上添加权限.它也没用.
当我远程桌面直接进入实例时,文件夹E:\ sitesroot \甚至不存在.
对于那些想知道的人。我已经找到问题了。startup.bat 脚本未成功运行。我通过将其更改为以下内容找到了答案:
启动.bat
%windir%\system32\Icacls.exe ..\..\* /T /grant "Network Service":(F) > c:\\logStart.txt 2>&1
exit /b 0
Run Code Online (Sandbox Code Playgroud)
该问题与文件的编码有关。使用notepad++并将编码更改为“UTF-8 without BOM”后文件才成功运行
归档时间: |
|
查看次数: |
927 次 |
最近记录: |