C# 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是在动态加载的组件中实现的 错误出现在以下行中: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是在动态
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);
}
}