none
vista sp1下通过IIS7运行asp.net程序报error CS0016:错误 RRS feed

  • 问题

  •  

    系统环境

    操作系统:   Windows Vista Ultimate SP1

    IIS:             IIS7.0

                     在"Windows功能"中,已将Internet信息服务,Microsoft .net Framework3.0,Microsoft Message Queue(MSMQ)服务器所有项都选上.

                     在虚拟目录中,将应用程序的的应用程序池选为Classic.Net AppPool

                     给应用程序的本地目录加入了IUSR,NetWork Service,IIS_Iusers权限组完全控制

                     给C:\Windows\temp目录也加入了IUSR,NetWork Service,IIS_Iusers权限组完全控制

     

     

    测试应用程序就是一个空白的asp.net页面,应用程序分别用vs2005与vs2008各开发了一套.都不能正常运行,出现以下错误提示:

     

    “/MyTest”应用程序中的服务器错误。

    编译错误

    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

    编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.dll”--“拒绝访问。 ”

    源错误:

    [没有相关的源行]

    源文件:    行: 0



    c:\windows\system32\inetsrv> "C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"C:\Windows\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"C:\Windows\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.IdentityModel\3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\Windows\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /out:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.dll" /debug- /optimize+ /w:4 /nowarn:1659;1699;1701  "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.0.cs" "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.1.cs" "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.2.cs"
    
    
    Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.1434
    用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
    版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。
    
    error CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.s6chsk50.dll”--“拒绝访问。 ”
    




    版本信息: Microsoft .NET Framework 版本:2.0.50727.1434; ASP.NET 版本:2.0.50727.1434

     

     

     

     

    系统日志记录:

     

    日志名称:          Application
    来源:            ASP.NET 2.0.50727.0
    日期:            2008-05-10 12:33:16
    事件 ID:         1310
    任务类别:          (3)
    级别:            警告
    关键字:           经典
    用户:            暂缺
    计算机:           #####
    说明:
    Event code: 3007
    Event message: 发生了编译错误。
    Event time: 2008/5/10 12:33:16
    Event time (UTC): 2008/5/10 4:33:16
    Event ID: 3f5d98438e4344da8c9e0030071943b4
    Event sequence: 8
    Event occurrence: 1
    Event detail code: 0
     
    Application information:
        Application domain: /LM/W3SVC/1/ROOT/MyTest-1-128548675942223639
        Trust level: Full
        Application Virtual Path: /MyTest
        Application Path: C:\inetpub\wwwroot\MyTest\
        Machine name: ######


    Process information:
        Process ID: 4540
        Process name: w3wp.exe
        Account name: NT AUTHORITY\NETWORK SERVICE
     
    Exception information:
        Exception type: HttpCompileException
        Exception message: (0): error CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.vpjip-yo.dll”--“拒绝访问。 ”
     
    Request information:
        Request URL: http://localhost/MyTest/default.aspx
        Request path: /MyTest/default.aspx
        User host address: ::1
        User: 
        Is authenticated: False
        Authentication Type: 
        Thread account name: NT AUTHORITY\NETWORK SERVICE
     
    Thread information:
        Thread ID: 4
        Thread account name: NT AUTHORITY\NETWORK SERVICE
        Is impersonating: False
        Stack trace:    在 System.Web.Compilation.AssemblyBuilder.Compile()
       在 System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
       在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
       在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
     
     
    Custom event details:

    事件 Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="ASP.NET 2.0.50727.0" />
        <EventID Qualifiers="32768">1310</EventID>
        <Level>3</Level>
        <Task>3</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2008-05-10T04:33:16.000Z" />
        <EventRecordID>4955</EventRecordID>
        <Channel>Application</Channel>
        <Computer>#####</Computer>
        <Security />
      </System>
      <EventData>
        <Data>3007</Data>
        <Data>发生了编译错误。</Data>
        <Data>2008/5/10 12:33:16</Data>
        <Data>2008/5/10 4:33:16</Data>
        <Data>3f5d98438e4344da8c9e0030071943b4</Data>
        <Data>8</Data>
        <Data>1</Data>
        <Data>0</Data>
        <Data>/LM/W3SVC/1/ROOT/MyTest-1-128548675942223639</Data>
        <Data>Full</Data>
        <Data>/MyTest</Data>
        <Data>C:\inetpub\wwwroot\MyTest\</Data>
        <Data>######</Data>
        <Data>
        </Data>
        <Data>4540</Data>
        <Data>w3wp.exe</Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>HttpCompileException</Data>
        <Data>(0): error CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mytest\d40d6d0a\72055ef8\App_Web_default.aspx.cdcab7d2.vpjip-yo.dll”--“拒绝访问。 ”</Data>
        <Data>http://localhost/MyTest/default.aspx</Data>
        <Data>/MyTest/default.aspx</Data>
        <Data>::1</Data>
        <Data>
        </Data>
        <Data>False</Data>
        <Data>
        </Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>4</Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>False</Data>
        <Data>   在 System.Web.Compilation.AssemblyBuilder.Compile()
       在 System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
       在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
       在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
       在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
       在 System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
       在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
    </Data>
      </EventData>
    </Event>

    2008年5月10日 5:58

答案

  • 试一下给c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ 目录相应的权限
    2008年5月10日 6:57
    版主
  • 看描述的情况,应该是不小心删除了下面的文件夹

    c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

     

    新建出来的文件夹却没有给相应的用户写权限,从而导致编译失败。

     

    解决方案:

    对文件夹c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

    给予用户ASPNET(视具体情况而定,就是网络服务对应的用户)以读写的权限,一般问题即可解决。

    2008年6月21日 15:06

全部回复

  • 试一下给c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ 目录相应的权限
    2008年5月10日 6:57
    版主
  • 看描述的情况,应该是不小心删除了下面的文件夹

    c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

     

    新建出来的文件夹却没有给相应的用户写权限,从而导致编译失败。

     

    解决方案:

    对文件夹c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

    给予用户ASPNET(视具体情况而定,就是网络服务对应的用户)以读写的权限,一般问题即可解决。

    2008年6月21日 15:06