- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
长话短说,这直到最近才有效,无论我是在本地运行还是让构建服务器部署它运行,它都存在这个问题。经过多次代码调试后,我得出了这个结论:
(这是一个 owin 自托管的 asp 应用程序,这是 WebApp.Start<Startup>(options)
调用的类。每次都在这里中断:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
// controller injector
//var controllerActivator = new CustomControllerActivator(HostContainer.Current);
//config.Services.Replace(typeof(IHttpControllerActivator), controllerActivator);
config.Routes.MapHttpRoute("DefaultApi",
"{controller}/{id}",
new { id = RouteParameter.Optional });
HostContainer.Initialize();
app.UseWebApi(config);
}
}
public class CustomControllerActivator : IHttpControllerActivator
{
private readonly IWindsorContainer _container;
public CustomControllerActivator(IWindsorContainer container)
{
_container = container;
}
public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
var controller = _container.Resolve(controllerType) as IHttpController;
request.RegisterForDispose(new DisposeAction(() => _container.Release(controller)));
return controller;
}
}
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
// controller injector
var controllerActivator = new CustomControllerActivator(HostContainer.Current);
//config.Services.Replace(typeof(IHttpControllerActivator), controllerActivator);
config.Routes.MapHttpRoute("DefaultApi",
"{controller}/{id}",
new { id = RouteParameter.Optional });
HostContainer.Initialize();
app.UseWebApi(config);
}
}
public class CustomControllerActivator : IHttpControllerActivator
{
private readonly IWindsorContainer _container;
public CustomControllerActivator(IWindsorContainer container)
{
_container = container;
}
public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
var controller = _container.Resolve(controllerType) as IHttpController;
request.RegisterForDispose(new DisposeAction(() => _container.Release(controller)));
return controller;
}
}
两个示例之间的唯一区别是 var controllerActivator = new CustomControllerActivator(HostContainer.Current);
在第二个例子中没有注释。
抛出的异常:
An exception occurred, System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'System.Web.Http.Controllers.IHttpController System.Web.Http.Dispatcher.IHttpControllerActivator.Create(System.Net.Http.HttpRequestMessage, System.Web.Http.Controllers.HttpControllerDescriptor, System.Type)'.
at DAS.Services.Reviews.Command.Startup.Configuration(IAppBuilder app) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Owin.Loader.DefaultLoader.<>c__DisplayClass12.b__b(IAppBuilder builder) at Owin.Loader.DefaultLoader.<>c__DisplayClass1.b__0(IAppBuilder builder) at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveApp(StartContext context) at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)
at DAS.Services.Reviews.Command.HostingConfiguration.Start(HostControl hostControl) in C:\source\das\Platform\das.services.reviews\src\DAS.Services.Reviews.Command\Host.cs:line 40 at Topshelf.Builders.ControlServiceBuilder`1.ControlServiceHandle.Start(HostControl hostControl) at Topshelf.Hosts.ConsoleRunHost.Run()
最令人沮丧的部分是简单地取消对该实例化的注释会导致整个启动在 WebApp.Start<Startup>(options)
时立即失败。叫做。如果取消注释该行,则不会命中 Startup.cs 中的断点。如果我注释掉该行,那么断点将被击中并且每个都开始正常。
我被难住了。我试过清理解决方案并重新启动等,但没有成功。如果它是通过构建服务器构建和部署的,同样的问题。
public class HostContainer
{
public static IWindsorContainer Current { get; private set; }
public static void Initialize()
{
// this allows multiple registrations of a service (multis will return an array). This
// must be run before registrations (i.e. before Install() is called)
Current = new WindsorContainer();
Current.Kernel.Resolver.AddSubResolver(new CollectionResolver(Current.Kernel, true));
Current.Install(FromAssembly.This());
}
}
所以我们只是将我们的核心库(nuget 包)移植到 netstandard2.0。在我们将这些新包拉入项目后,这个问题开始发生。我刚刚注意到,当我现在构建项目时,我在输出窗口中收到大量警告,建议我将一些 .Net 程序集的重新映射添加到 app.config。可能有大约 50 个不同的 .net 程序集。
这让我觉得 netstandard2.0 本身正在引用较新的框架库,并且在运行时发生了某种困惑。如果我将绑定(bind)重定向添加到 app.config,消息不会消失,所以我有点困惑。我不确定这是否相关。
如果我使用相同的包(我们的新 netstandard2.0 包)从头开始一个新项目,我将无法重现此问题。我在这里缺少什么?
最佳答案
所以我对此没有可靠的答案,但我最终让它工作的方法是将 net461 作为附加目标框架添加到 netstandard 库中。似乎如果将两者混合,就会发生一些奇怪的事情。我不知道实际发生了什么,但它几乎就像 .net 看到依赖图中有一个 netstandard 库,然后寻找一个实现,但对于整个过程,默认为 netcore。因此,如果某些内容未在 netcore 中实现,它将抛出未实现的异常。我假设通过添加 461 作为目标框架,“它”知道首先尝试将其作为实现。
关于c# - 谁能解释这个 'has no implementation' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45945513/
我经常在 C 标准文档中看到“实现定义”的说法,并且非常将其作为答案。 然后我在 C99 标准中搜索它,并且: ISO/IEC 9899/1999 (C99) 中第 §3.12 条规定: 3.12 I
“依赖于实现”中的“实现”是什么意思? “依赖于实现”和“依赖于机器”之间有什么区别? 我使用C,所以你可以用C解释它。 最佳答案 当 C 标准讨论实现时,它指的是 C 语言的实现。因此,C 的实现就
我刚刚在 Android-studio 中导入了我的项目,并试图在其中创建一个新的 Activity。但我无法在 android-studio 中创建 Activity 。我指的是here我看不到将目
我想知道您对为什么会发生此错误的意见。在陆上生产环境中,我们使用 CDH4。在我们的本地测试环境中,我们只使用 Apache Hadoop v2.2.0。当我运行在 CDH4 上编译的同一个 jar
我正在尝试集成第三方 SDK (DeepAR)。但是当我构建它时,它会显示一个错误。我试图修复它。如果我创建一个简单的新项目,它就可以正常工作。但是我现有的应用程序我使用相机和 ndk。请帮我找出错误
我很好奇为什么我们有 @Overrides 注释,但接口(interface)没有类似的习惯用法(例如 @Implements 或 @Implementation)。这似乎是一个有用的功能,因为您可能
我对 DAODatabase(适用于 Oracle 11 xe)的 CRUD 方法的实现感到困惑。问题是,在通常存储到 Map 集合的情况下,“U”方法(更新)会插入新元素或更新它(像 ID:Abst
Java-API 告诉我特定类实现了哪些接口(interface)。但有两种不同类型的信息,我不太确定这意味着什么。例如,对于“TreeSet”类:https://docs.oracle.com/en
我有一个接口(interface) MLService,它具有与机器学习算法的训练和交叉验证相关的基本方法,我必须添加两个接口(interface)分类和预测,它们将实现 MLService 并包含根
我一直想知道如何最好地为所有实现相同接口(interface)的类系列实现 equals()(并且客户端应该只使用所述接口(interface)并且永远不知道实现类)。 我还没有编写自己的具体示例,但
我有一个接口(interface)及其 2 个或更多实现, public interface IProcessor { default void method1() { //logic
我有同一个应用程序的免费版和高级版(几乎相同的代码,相同的类,到处都是“if”, list 中的不同包, list 中的进程名称相同)。主要 Activity 使用 IMPLICIT Intent 调
这是我为我的应用程序中的错误部分编写的代码 - (id)initWithData:(NSData *)data <-------- options:(NSUInteger)opti
请查找随附的代码片段。我正在使用此代码将文件从 hdfs 下载到我的本地文件系统 - Configuration conf = new Configuration(); FileSys
我想在 MongoDB 中使用 Grails2.5 中的“ElasticSearch”插件。我的“BuildConfig.groovy”文件是: grails.servlet.version = "3
我收到一条错误消息: fatal error: init(coder:) has not been implemented 对于我的自定义 UITableViewCell。该单元格未注册,在 Stor
得到这个错误 kotlin.NotImplementedError: An operation is not implemented: not implemented 我正在实现一个 ImageBut
typedef int Element; typedef struct { Element *stack; int max_size; int top; } Stack; //
Playground 代码 here 例子: interface IFoo { bar: number; foo?: () => void; } abstract class Abst
我想知道如何抑制警告: Category is implementing a method which will also be implemented by its primary class. 我
我是一名优秀的程序员,十分优秀!