gpt4 book ai didi

asp.net-web-api - SelfHosted AspNet WebAPI 与不同项目中的 Controller 类

转载 作者:行者123 更新时间:2023-12-02 13:53:54 24 4
gpt4 key购买 nike

我使用 Visual Studio 2012 (.NET Framework 4.5) 创建了一个 SelfHosted AspNet WebAPI。我为 WebAPI 启用了 SSL。当 Controller 在同一个项目中定义时,它可以正常工作。

但是当我添加另一个包含 Controller 的项目的引用时,它给出了以下错误:

No HTTP resource was found that matches the request URI 'https://xxx.xxx.xxx.xxx:xxxx/hellowebapi/tests/'.

我已经为 HttpSelfHostConfiguration 和 MessageHandler 创建了自定义类。

解决这个问题的任何帮助对我来说都是一个很好的时间享受。

提前致谢。

最佳答案

您可以编写一个简单的自定义程序集解析器,以确保加载引用的程序集以使 Controller 探测正常工作。

以下是 Filip 就此事发表的一篇精彩帖子:
http://www.strathweb.com/2012/06/using-controllers-from-an-external-assembly-in-asp-net-web-api/

示例:

class Program
{
static HttpSelfHostServer CreateHost(string address)
{
// Create normal config
HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(address);

// Set our own assembly resolver where we add the assemblies we need
CustomAssembliesResolver assemblyResolver = new CustomAssembliesResolver();
config.Services.Replace(typeof(IAssembliesResolver), assemblyResolver);

// Add a route
config.Routes.MapHttpRoute(
name: "default",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "Home", id = RouteParameter.Optional });

HttpSelfHostServer server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();

Console.WriteLine("Listening on " + address);
return server;
}

static void Main(string[] args)
{
// Create and open our host
HttpSelfHostServer server = CreateHost("http://localhost:8080");

Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
}

public class CustomAssembliesResolver : DefaultAssembliesResolver
{
public override ICollection<Assembly> GetAssemblies()
{
ICollection<Assembly> baseAssemblies = base.GetAssemblies();

List<Assembly> assemblies = new List<Assembly>(baseAssemblies);

var controllersAssembly = Assembly.LoadFrom(@"C:\libs\controllers\ControllersLibrary.dll");

baseAssemblies.Add(controllersAssembly);

return assemblies;
}
}

关于asp.net-web-api - SelfHosted AspNet WebAPI 与不同项目中的 Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com