自托管OWIN到网络上的其他计算机

Duc*_*nes 8 c# self-hosting asp.net-web-api owin

我试图在WinForms应用程序中自我托管一个OWIN管道.该管道正在托管静态文件和Web Api v2内容.该实现在本地工作得很好,但我不确定我缺少什么才能从我的网络上的远程机器访问托管文件和API.

为了简单起见,我下载CodePlex从样品自主机的应用程序在这里,并试图使下面的修改的基地址后远程访问的测试方法(I尝试都运行在netsh regisration和我在管理员模式下运行)和I仍然无法访问它们.我需要在配置中更改哪些内容才能查看同一网络中其他计算机的内容?

static void Main()
{
    string baseAddress = "http://*:10281/";
    // Start OWIN host
    using (WebApp.Start<Startup>(url: baseAddress))
    {
        // Create HttpCient and make a request to api/values
        HttpClient client = new HttpClient();

        HttpResponseMessage response = client.GetAsync("http://localhost:10281/api/values").Result;

        Console.WriteLine(response);
        Console.WriteLine(response.Content.ReadAsStringAsync().Result);
        Console.ReadLine(); // Keeps the host from disposing immediately
    }
}
Run Code Online (Sandbox Code Playgroud)

这是启动配置,非常基本的东西:

public class Startup
{
     // This code configures Web API contained in the class Startup, which is additionally specified as the type parameter in WebApplication.Start
    public void Configuration(IAppBuilder appBuilder)
    {
        // Configure Web API for Self-Host
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        appBuilder.UseWebApi(config);
    }
}
Run Code Online (Sandbox Code Playgroud)

Zep*_*hyr 8

该代码看起来很好,并且它没有理由不起作用,特别是如果您可以在本地访问OWIN服务器.

有两个可能阻止网络访问的问题.您需要为端口10281的Windows防火墙添加入站规则(或临时禁用主机计算机上的任何防火墙),或者您的网络以某种方式阻止了流量.