none
请教WCF服务工程项目(只包含一个wcf服务)发布到IIS6.0,但是浏览服务报错! RRS feed

  • 问题

  • 能加载文件或程序集“WcfServiceCaculatorDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。拒绝访问。

    说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“WcfServiceCaculatorDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。拒绝访问。

    源错误:
    执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

    程序集加载跟踪: 下列信息有助于确定程序集“WcfServiceCaculatorDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”未能加载的原因。
    警告: 程序集绑定日志记录被关闭。
    要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
    注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
    要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
    

    堆栈跟踪:
    [FileLoadException: 未能加载文件或程序集“WcfServiceCaculatorDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。拒绝访问。]
       System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
       System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +17
       System.Reflection.Assembly.Load(String assemblyString) +35
       System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +260
       System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +1435
       System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +76
       System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901
    
    [ServiceActivationException: 由于编译过程中出现异常,无法激活服务“/WcfCaculatorService.svc”。异常消息为: 未能加载文件或程序集“WcfServiceCaculatorDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。拒绝访问。。]
       System.Runtime.AsyncResult.End(IAsyncResult result) +624522
       System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +196075
       System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +166
    


    版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34209  
    2016年8月8日 12:38

全部回复

  • 用.NET Reflector 打开程序集WcfServiceCaculatorDemo,看一下它的依赖项是什么,把这些依赖项复制过来即可,

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月8日 13:19

  • 依赖的程序集是References下面的这三个?需要额外的引用么


    Assembly Reference mscorlib

    Version: 4.0.0.0
    Name: mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    
    
    // Assembly Reference System.Runtime.Serialization
    
    Version: 4.0.0.0
    Name: System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    
    
    // Assembly Reference System.ServiceModel
    
    Version: 4.0.0.0
    Name: System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    
    


    2016年8月9日 5:25
  • 这三个程序集不需要单独引用。

    从上面的

    mscorlib, Version=4.0.0.0看到当前的环境是.NET 4,请问下IIS6里面的.NET是否有设定.NET环境?

    参考下面这个

    http://johan.driessen.se/posts/getting-an-asp.net-4-application-to-work-on-iis6

    我认为主要的原因是IIS6中跑.NET的原因。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月9日 5:43