C# OWIN启动错误

C# OWIN启动错误,c#,asp.net-web-api,owin,C#,Asp.net Web Api,Owin,如果使用自托管web api OWIN启动应用程序,我会收到以下错误消息: {尝试加载应用程序时发生以下错误。\r\n- 对于应用程序启动参数值“..PlugIn.WebService.startup,..PlugIn.WebService,Version=1.0.0,Culture=neutral, PublicKeyToken=null',未找到程序集“..PlugIn.WebService,版本=1.0.0.0,区域性=中立,PublicKeyToken=null”。:} Owin是在动态

如果使用自托管web api OWIN启动应用程序,我会收到以下错误消息:

{尝试加载应用程序时发生以下错误。\r\n- 对于应用程序启动参数值“..PlugIn.WebService.startup,..PlugIn.WebService,Version=1.0.0,Culture=neutral, PublicKeyToken=null',未找到程序集“..PlugIn.WebService,版本=1.0.0.0,区域性=中立,PublicKeyToken=null”。:}

Owin是在动态加载的组件中实现的

错误出现在以下行中:

webApiDisposable = WebApp.Start<Startup>(url: baseAddress);

奇怪的是,在另一个项目中,它工作得很好。我还尝试了Owin.Start属性。

我也遇到了同样的问题,启动程序时找不到Startup类。这不是一个仅与OWIN相关的问题,但可能出于同样的原因

由于某些原因,web服务的程序集名称已更改,不幸的是,它与同一项目引用的另一个程序集相同

当然,它们相互矛盾。 解决方案是重命名程序集


我知道现在帮BendEg已经很晚了,但这可能对其他人有用。

问题可能是缺少参考,或者web.config不好,或者类似的东西。我不需要任何web.config,因为它是自托管的windows服务。Nuget应该加载所有需要的依赖项。Thas似乎已经完成了。什么是Plugin.WebService,为什么找不到它?这就是错误所指的方向。这就是为什么我认为它与此代码无关。PlugIn.Webservice是一个简单的Dll,它是用Assembly.Load动态加载的。。。。调用webapitransable=WebApp.Starturl:baseAddress的方法;是我们系统的核心。它试图加载该DLL,但失败了。你需要弄清楚为什么它不能加载那个DLL。以及为什么它认为它需要那个DLL。我现在会删除对它的依赖,看看它是否有效,然后零碎地添加回来。
public class Startup
{
    /// <summary>
    /// Configurate the new http client
    /// </summary>
    /// <param name="appBuilder">OWIN App builder</param>
    public void Configuration(IAppBuilder appBuilder)
    {
        string routeTempl = "api/" + EndpointManager.API_VERSION + 
                            "/{controller}/{action}/{id}";

        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: routeTempl,
            defaults: new { id = RouteParameter.Optional }
        );

        // Attribute routing
        config.MapHttpAttributeRoutes();

        // Set all filter, like for authentication and autoriuation
        config.Filters.Add(new IntegratedAuthorization());

        // Setup Json-return
        config.Formatters.Clear();
        config.Formatters.Add(new JsonMediaTypeFormatter());
        config.Formatters.JsonFormatter.SerializerSettings =
        new JsonSerializerSettings
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };

        appBuilder.UseWebApi(config);
    }
}