Почему мой веб-сервис ASP.NET 4.0 завершается с ошибкой компиляции с NetworkService, но успешно с LocalSystem - PullRequest
2 голосов
/ 12 марта 2011

Я начал получать ошибки компиляции на стороне сервера, указывающие, что удостоверение пула приложений моей веб-службы не может получить доступ к файлам во временной папке ASP.NET.Если я изменю удостоверение пула приложений с NetworkService на LocalSystem, проблема исчезнет.Я не вижу проблем с настройками безопасности в папке, и я повторно запускаю aspnet_regiis -i безрезультатно.

Полное исключение, как оно отображается в журнале ошибок приложения, приведено ниже, но суть егоэто:

HttpCompileException
error CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\
Framework\v4.0.30319\Temporary ASP.NET Files\kswsextensionservicesweb\f2efe503\
31c03187\App_global.asax.4gcxry4d.dll' -- 'Access is denied. '

Может кто-нибудь объяснить, почему?Что странно, что это работало.Что-то изменилось, но я не могу понять, что.

Log Name:      Application
Source:        ASP.NET 4.0.30319.0
Date:          3/12/2011 12:41:21 PM
Event ID:      1310
Task Category: Web Event
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      NYDMTRAIN01.kayescholer.com
Description:
Event code: 3007 
Event message: A compilation error has occurred. 
Event time: 3/12/2011 12:41:21 PM 
Event time (UTC): 3/12/2011 5:41:21 PM 
Event ID: bc285ecdc00941d28070725f55ea24f1 
Event sequence: 3 
Event occurrence: 1 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/1/ROOT/KSWSExtensionServicesWeb-2-129444252812003152 
    Trust level: Full 
    Application Virtual Path: /KSWSExtensionServicesWeb 
    Application Path: C:\inetpub\wwwroot\KSWSExtensionServicesWeb\ 
    Machine name: NYDMTRAIN01 

Process information: 
    Process ID: 3988 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\NETWORK SERVICE 

Exception information: 
    Exception type: HttpCompileException 
    Exception message: (0): error CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\kswsextensionservicesweb\f2efe503\31c03187\App_global.asax.4gcxry4d.dll' -- 'Access is denied. '
   at System.Web.Compilation.AssemblyBuilder.Compile()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   at System.Web.Compilation.BuildManager.CompileGlobalAsax()
   at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   at System.Web.Compilation.BuildManager.CallAppInitializeMethod()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)



Request information: 
    Request URL: http://nydmtrain01/KSWSExtensionServicesWeb/Services/KSWSDocumentHistoryService.svc 
    Request path: /KSWSExtensionServicesWeb/Services/KSWSDocumentHistoryService.svc 
    User host address: 172.25.43.171 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: NT AUTHORITY\NETWORK SERVICE 

Thread information: 
    Thread ID: 6 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: False 
    Stack trace:    at System.Web.Compilation.AssemblyBuilder.Compile()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   at System.Web.Compilation.BuildManager.CompileGlobalAsax()
   at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   at System.Web.Compilation.BuildManager.CallAppInitializeMethod()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)


Custom event details: 

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="ASP.NET 4.0.30319.0" />
    <EventID Qualifiers="32768">1310</EventID>
    <Level>3</Level>
    <Task>3</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2011-03-12T17:41:21.000Z" />
    <EventRecordID>127544</EventRecordID>
    <Channel>Application</Channel>
    <Computer>NYDMTRAIN01.kayescholer.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>3007</Data>
    <Data>A compilation error has occurred.</Data>
    <Data>3/12/2011 12:41:21 PM</Data>
    <Data>3/12/2011 5:41:21 PM</Data>
    <Data>bc285ecdc00941d28070725f55ea24f1</Data>
    <Data>3</Data>
    <Data>1</Data>
    <Data>0</Data>
    <Data>/LM/W3SVC/1/ROOT/KSWSExtensionServicesWeb-2-129444252812003152</Data>
    <Data>Full</Data>
    <Data>/KSWSExtensionServicesWeb</Data>
    <Data>C:\inetpub\wwwroot\KSWSExtensionServicesWeb\</Data>
    <Data>NYDMTRAIN01</Data>
    <Data>
    </Data>
    <Data>3988</Data>
    <Data>w3wp.exe</Data>
    <Data>NT AUTHORITY\NETWORK SERVICE</Data>
    <Data>HttpCompileException</Data>
    <Data>(0): error CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\kswsextensionservicesweb\f2efe503\31c03187\App_global.asax.4gcxry4d.dll' -- 'Access is denied. '
   at System.Web.Compilation.AssemblyBuilder.Compile()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   at System.Web.Compilation.BuildManager.CompileGlobalAsax()
   at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   at System.Web.Compilation.BuildManager.CallAppInitializeMethod()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)

</Data>
    <Data>http://nydmtrain01/KSWSExtensionServicesWeb/Services/KSWSDocumentHistoryService.svc</Data>
    <Data>/KSWSExtensionServicesWeb/Services/KSWSDocumentHistoryService.svc</Data>
    <Data>172.25.43.171</Data>
    <Data>
    </Data>
    <Data>False</Data>
    <Data>
    </Data>
    <Data>NT AUTHORITY\NETWORK SERVICE</Data>
    <Data>6</Data>
    <Data>NT AUTHORITY\NETWORK SERVICE</Data>
    <Data>False</Data>
    <Data>   at System.Web.Compilation.AssemblyBuilder.Compile()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   at System.Web.Compilation.BuildManager.CompileGlobalAsax()
   at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   at System.Web.Compilation.BuildManager.CallAppInitializeMethod()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
</Data>
  </EventData>
</Event>

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Хотя сообщение об ошибке указывает, что проблема связана с правами каталога в следующем каталоге:

c:\Windows\Microsoft.NET\
Framework\v4.0.30319\Temporary ASP.NET Files\kswsextensionservicesweb\f2efe503\
31c03187\App_global.asax.4gcxry4d.dll'

проверьте, что у вас есть соответствующие / полные права, предоставленные группе сетевых услуг на Каталоги C: \ WINDOWS \ TEMP и / или C: \ WINDOWS \ TMP.

0 голосов
/ 17 декабря 2014

Я решил ту же проблему, но с разными правами доступа. Система: Windows Server 2012 Standard, немецкий

Запись в журнале событий:

Event code: 3007
Event message: Es ist ein Kompilierungsfehler aufgetreten.
Event time: ...

Application information: 
    Application domain: /LM/W3SVC/1/ROOT/my application-1-130632179028062931 
    Trust level: Full 
    Application Virtual Path: /my application 
    Application Path: C:\MyFolder\MySubfolder\WebService\ 
    Machine name: MY-MACHINE 

Process information: 
    Process ID: 3708 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\DefaultAppPool 

Exception information: 
    Exception type: HttpCompileException 
    Exception message: (0): error CS0016: In die Ausgabedatei 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\my application\f8d3580c\8eb6e3c2\App_global.asax.1ygrdjjc.dll' konnte nicht geschrieben werden -- 'Zugriff verweigert '
   bei System.Web.Compilation.AssemblyBuilder.Compile()
   bei System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   bei System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   bei System.Web.Compilation.BuildManager.CompileGlobalAsax()
   bei System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   bei System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)



Request information: 
    Request URL: ...
    Request path: /...
    User host address: ::1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\DefaultAppPool 

Thread information: 
    Thread ID: 7 
    Thread account name: IIS APPPOOL\DefaultAppPool 
    Is impersonating: False 
Stack trace:    bei System.Web.Compilation.AssemblyBuilder.Compile()
   bei ... 

Я решил это, предоставив права полного доступа к C: \ TEMP для группы IIS_IUSRS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...