在对我的RIA域服务进行一些细微更改之后,尝试构建我的VS 2010 Silverlight项目时,已经开始出现此错误,该服务在Silverlight网站应用程序中托管。该错误似乎没有原因,并且我无法理解该错误的拒绝访问部分。

我尝试过的事情:

1)彻底清除解决方案中的所有项目并重新构建
2)从framework文件夹中删除所有临时ASP.Net文件
3)从失败的类库的项目属性中删除链接的RIA服务,清理,重建并重新添加链接的RIA服务

任何关于从这里出发的建议都将不胜感激:

错误21“CreateRiaClientFilesTask”任务意外失败。
System.Web.HttpException(0x80004005):无法加载文件或程序集'Business,版本= 1.0.0.0,Culture =中性,PublicKeyToken =空'或其依赖项之一。访问被拒绝。 ---> System.Configuration.ConfigurationErrorsException:无法加载文件或程序集'Business,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。访问被拒绝。 ---> System.IO.FileLoadException:无法加载文件或程序集'Business,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空'或其依赖项之一。访问被拒绝。 ---> System.IO.FileLoadException:无法加载文件或程序集“业务”或其依赖项之一。访问被拒绝。

---内部异常堆栈跟踪的结尾---
在System.Reflection.RuntimeAssembly._nLoad(AssemblyName文件名,字符串codeBase,证据assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark, bool throwOnFileNotFound, bool 值用于自省(introspection), bool 值preventSecurityChecks)
在System.Reflection.RuntimeAssembly.nLoad处(AssemblyName文件名,字符串codeBase,证据AssemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark, bool throwOnFileNotFound, bool 值用于自省(introspection), bool 值抑制安全检查)
在System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据assemblySecurity,StackCrawlMark&stackMark, bool 值用于自省(introspection), bool 值抑制安全检查)
在System.Reflection.RuntimeAssembly.InternalLoad处(字符串assemblyString,证据assemblySecurity,StackCrawlMark和stackMark, bool 值用于自省(introspection))
在System.Reflection.Assembly.Load(String assemblyString)
在System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)
---内部异常堆栈跟踪的结尾---
在System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)
在System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
在System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)
在System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)处
在System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()
在System.Web.Compilation.BuildManager.CallPreStartInitMethods()
在System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParametershostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)
在System.Web.Compilation.ClientBuildManager.EnsureHostCreated()
在System.Web.Compilation.ClientBuildManager.CreateObject(类型, bool failIfExists)
在Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.CreateSharedTypeService(ClientBuildManager clientBuildManager,IEnumerable`1 serverAssemblies,ILogger logger)
在Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.GenerateClientProxies()
在Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.ExecuteInternal()
在Microsoft.ServiceModel.DomainServices.Tools.RiaClientFilesTask.Execute()
在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,TaskHost taskHost,ItemBucket存储桶,TaskExecutionMode howToExecuteTask,Boolean和taskResult)中

最佳答案

刚刚遇到了同样的问题-原来是某些内容更改了“Temporary ASP.NET Files”文件夹的权限。很容易测试。在解决方案资源管理器中,为.web项目单击ASP.Net配置。它可能会引发拒绝访问错误,并指向temp asp.net文件文件夹。如果是这样,请在您的.web项目中打开web.config并将tempDirectory指令添加到编译中,如下所示:

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" tempDirectory="C:\<SomeDirectoryYouFullyControl>\Temporary ASP.Net Files" />
    </system.web>

重建您的.web项目,并在Silverlight项目中更新您的服务引用。

09-20 15:41