Webapi 方法未找到异常 get_MessageHandlers
Webapi methodnotfound exception get_MessageHandlers
我在我的 Web api2 应用程序中添加了两个自定义消息处理程序,如下所示
https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/http-message-handlers
然后在 Register 方法中将它们注册为,
config.MessageHandlers.Add(new LogHandler());
config.MessageHandlers.Add(new HeaderHandler());
启动时出现此错误:
Method not found: 'System.Collections.ObjectModel.Collection`1
System.Web.Http.HttpConfiguration.get_MessageHandlers()'.
搜索了几个小时后,我意识到这是由于添加了对 .NET 标准库项目的引用。
我一删除其他项目,这个错误就消失了,应用程序 运行 没问题。
另外需要注意的重要一点是,仅当我添加自己的消息处理程序并引用 .Net 标准库时才会模拟该问题。
我遇到了类似的问题。我将引用多个 Aspose 程序集的方式从本地引用更改为 nuget。
nuget 包有几个依赖项被拉入我的项目。
这些依赖项之一是 System.Text.Encoding.CodePages v4.4.0,它似乎已将 .NETStandard 程序集拉入我的项目。
Web 应用程序 (asp.net mvc 461) 运行 在我的开发箱上运行良好,但是,在 IIS (W2012) 上,我遇到了类似于此处提到的错误。
我删除了 System.Text.Encoding.CodePages v4.4.0,它起作用了。
请参阅:https://forum.aspose.com/t/why-we-can-not-download-zip-like-we-have-in-the-past/176767/3
我发现这个问题的根本原因是 .net 标准引用经常引入对不同版本包的引用,例如 System.Net.Http 作为包的依赖项。
当我更新 StackExchange.Redis 时,我 运行 加入了这个。它 运行 在本地很好,但是当部署到服务器时它会崩溃。
为了解决这个问题,我为 System.Net.Http 添加了绑定重定向
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
我在我的 Web api2 应用程序中添加了两个自定义消息处理程序,如下所示 https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/http-message-handlers
然后在 Register 方法中将它们注册为,
config.MessageHandlers.Add(new LogHandler());
config.MessageHandlers.Add(new HeaderHandler());
启动时出现此错误:
Method not found: 'System.Collections.ObjectModel.Collection`1
System.Web.Http.HttpConfiguration.get_MessageHandlers()'.
搜索了几个小时后,我意识到这是由于添加了对 .NET 标准库项目的引用。
我一删除其他项目,这个错误就消失了,应用程序 运行 没问题。
另外需要注意的重要一点是,仅当我添加自己的消息处理程序并引用 .Net 标准库时才会模拟该问题。
我遇到了类似的问题。我将引用多个 Aspose 程序集的方式从本地引用更改为 nuget。
nuget 包有几个依赖项被拉入我的项目。 这些依赖项之一是 System.Text.Encoding.CodePages v4.4.0,它似乎已将 .NETStandard 程序集拉入我的项目。
Web 应用程序 (asp.net mvc 461) 运行 在我的开发箱上运行良好,但是,在 IIS (W2012) 上,我遇到了类似于此处提到的错误。
我删除了 System.Text.Encoding.CodePages v4.4.0,它起作用了。 请参阅:https://forum.aspose.com/t/why-we-can-not-download-zip-like-we-have-in-the-past/176767/3
我发现这个问题的根本原因是 .net 标准引用经常引入对不同版本包的引用,例如 System.Net.Http 作为包的依赖项。
当我更新 StackExchange.Redis 时,我 运行 加入了这个。它 运行 在本地很好,但是当部署到服务器时它会崩溃。
为了解决这个问题,我为 System.Net.Http 添加了绑定重定向
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>