我正在尝试连接DotVVM,以便将应用程序迁移到net。当我试图打开一个简单的网页时,我会得到一个错误。
Error in Dotvvm Application:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Cloud.Monitoring.UsageCounters, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Cloud.Monitoring.UsageCounters, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at DotVVM.Framework.Compilation.ControlTree.DefaultControlResolver.<>c.<InvokeStaticConstructorsOnAllControls>b__4_7(AssemblyName an)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at DotVVM.Framework.Utils.FunctionalExtensions.<SelectRecursively>d__8`1.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.<DistinctIterator>d__64`1.MoveNext()
at System.Linq.Enumerable.<ConcatIterator>d__59`1.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at DotVVM.Framework.Compilation.ControlTree.DefaultControlResolver.InvokeStaticConstructorsOnAllControls()
at DotVVM.Framework.Compilation.ControlTree.DefaultControlResolver..ctor(DotvvmMarkupConfiguration configuration, IControlBuilderFactory controlBuilderFactory)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at DotVVM.Framework.Compilation.DefaultControlBuilderFactory.CreateControlBuilder(MarkupFile file)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at DotVVM.Framework.Runtime.DefaultDotvvmViewBuilder.BuildView(IDotvvmRequestContext context)
at DotVVM.Framework.Hosting.DotvvmPresenter.<ProcessRequestCore>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DotVVM.Framework.Hosting.DotvvmPresenter.<ProcessRequest>d__25.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DotVVM.Framework.Hosting.Middlewares.DotvvmRoutingMiddleware.<Handle>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at DotVVM.Framework.Hosting.Middlewares.DotvvmRoutingMiddleware.<Handle>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at DotVVM.Framework.Hosting.DotvvmMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DotVVM.Framework.Hosting.Middlewares.DotvvmErrorPageMiddleware.<Invoke>d__5.MoveNext()我搜索了所有的库,发现库"Microsoft.ApplicationServer.Caching.Server.dll“指的是"Microsoft.Cloud.Monitoring.UsageCounters.dll".这是唯一的联系。库"Microsoft.ApplicationServer.Caching.Server.dll“包含在应用程序"AppFabric 1.1 for Windows”中。我还不能放弃“Windows1.1forWindowsServer”,因为AppFabric依赖于SharePoint。
我请求帮助解决这个错误。微软library.ApplicationServer.Caching.Server.dll我找不到它在互联网上,以检查它是否会与它一起工作。
以防万一,我附上测试页面的内容。
DotvvmStartup.cs
public class DotvvmStartup : IDotvvmStartup, IDotvvmServiceConfigurator
{
public void Configure(DotvvmConfiguration config, string applicationPath)
{
config.Debug = true;
config.AllowBindingDebugging = true;
ConfigureRoutes(config, applicationPath);
ConfigureControls(config, applicationPath);
ConfigureResources(config, applicationPath);
}
private void ConfigureRoutes(DotvvmConfiguration config, string applicationPath)
{
config.RouteTable.Add("FieldEdit2", "FieldEdit2", "FieldEdit2.dothtml");
config.RouteTable.Add("FieldEdit", "", "FieldEdit2.dothtml");
}
private void ConfigureControls(DotvvmConfiguration config, string applicationPath)
{
}
private void ConfigureResources(DotvvmConfiguration config, string applicationPath)
{
}
public void ConfigureServices(IDotvvmServiceCollection options)
{
options.AddDefaultTempStorages("Temp");
}
}FieldEdit2.dothtml
@viewModel WSSC.V4.SYS.DBFramework.DotVVMCustom.FieldEditViewModel,WSSC.V4.SYS.DBFramework
@masterPage Site.dotmaster
<dot:Content ContentPlaceHolderID="MainContent">
<h2>{{value: Title}}.</h2>
<h3>Your application description page.</h3>
<p>Use this area to provide additional information.</p>
</dot:Content>FieldEditViewModel.cs
public class FieldEditViewModel : SiteViewModel
{
public FieldEditViewModel()
{
}
public override string Title => "TestPage";
} SiteViewModel.cs
public abstract class SiteViewModel : DotvvmViewModelBase
{
public abstract string Title { get; }
}Startup.cs
[assembly: OwinStartup(typeof(WSSC.V4.SYS.DBFramework.DotVVMCustom.Startup))]
namespace WSSC.V4.SYS.DBFramework.DotVVMCustom
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseDotVVM<DotvvmStartup>(HostingEnvironment.ApplicationPhysicalPath);
}
}
}Web.config
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on how to configure your ASP.NET application, please visit https://go.microsoft.com/fwlink/?LinkId=169433 -->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.7.2"/>
<httpRuntime targetFramework="4.7.2"/>
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<appSettings>
<add key="owin:appStartup" value="WSSC.V4.SYS.DBFramework.DotVVMCustom.Startup,WSSC.V4.SYS.DBFramework,Version=4.0.0.0,Culture=neutral,PublicKeyToken=9f4da00116c38ec5"/>
</appSettings>
<system.codedom>
<compilers>
</compilers>
</system.codedom>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net472"/>
<package id="Ben.Demystifier" version="0.1.0" targetFramework="net472"/>
<package id="bootstrap" version="3.4.1" targetFramework="net472"/>
<package id="DotVVM" version="2.2.0.2" targetFramework="net472"/>
<package id="DotVVM.Core" version="2.2.0.2" targetFramework="net472"/>
<package id="DotVVM.Owin" version="2.2.0.2" targetFramework="net472"/>
<package id="EntityFramework" version="6.0.0" targetFramework="net472"/>
<package id="jQuery" version="3.3.1" targetFramework="net472"/>
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.CodeAnalysis.Common" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="3.6.0" targetFramework="net472"/>
<package id="Microsoft.Extensions.DependencyInjection" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.Extensions.Options" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.Extensions.Primitives" version="1.0.0" targetFramework="net472"/>
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net472"/>
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net472"/>
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net472"/>
<package id="Newtonsoft.Json" version="11.0.1" targetFramework="net472"/>
<package id="Owin" version="1.0" targetFramework="net472"/>
<package id="System.Collections" version="4.0.11" targetFramework="net472"/>
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="net472"/>
<package id="System.Collections.Immutable" version="1.4.0" targetFramework="net472"/>
<package id="System.ComponentModel" version="4.0.1" targetFramework="net472"/>
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net472"/>
<package id="System.Globalization" version="4.0.11" targetFramework="net472"/>
<package id="System.Linq" version="4.1.0" targetFramework="net472"/>
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="net472"/>
<package id="System.Reflection" version="4.1.0" targetFramework="net472"/>
<package id="System.Reflection.Metadata" version="1.5.0" targetFramework="net472"/>
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="net472"/>
<package id="System.Runtime" version="4.1.0" targetFramework="net472"/>
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net472"/>
<package id="System.Threading" version="4.0.11" targetFramework="net472"/>
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="net472"/>
<package id="System.ValueTuple" version="4.4.0" targetFramework="net472"/>
</packages>发布于 2022-08-30 06:52:16
发生此错误是因为DotVVM试图自发地调用所有类型的静态构造函数。
解决方案
config.ExperimentalFeatures.ExplicitAssemblyLoading.Enabled = true;信息来源https://gitter.im/riganti/dotvvm?at=5f0b4e5b7a4e99049e07ca51
示例
public class DotvvmStartup : IDotvvmStartup, IDotvvmServiceConfigurator
{
public void Configure(DotvvmConfiguration config, string applicationPath)
{
config.ExperimentalFeatures.ExplicitAssemblyLoading.Enabled = true;
config.Debug = true;
config.AllowBindingDebugging = true;
ConfigureRoutes(config, applicationPath);
ConfigureControls(config, applicationPath);
ConfigureResources(config, applicationPath);
}
}https://stackoverflow.com/questions/73537599
复制相似问题