gpt4 book ai didi

.net - 我只能使用 OWIN UseStaticFiles 提供一个文件

转载 作者:行者123 更新时间:2023-12-02 03:22:53 26 4
gpt4 key购买 nike

我使用 OWIN 能够通过 Windows 服务中的 http 提供静态内容。(嵌入 Windows 服务的 Web 管理工具)。

我遇到一些奇怪的行为:

  • 当我运行该服务时,我只能访问“web”文件夹中的一个文件,每次连续调用都会导致浏览器告知该页面是不可用 (ERR_CONNECTION_RESET)。
  • 嵌入式 WebApi 保持可访问性
  • 当我使用相同的地址和端口重新启动服务时,文件将保持不可见。
  • 当我在另一个端口上重新启动服务时,我可以访问文件一次...

顺便说一下,这个“web”文件夹中的文件被设置为“复制到输出目录”属性的“始终复制”。

有人知道出了什么问题吗?

在这里查看我的 StartUp 配置类

public class WebStartUp
{
public void Configuration(IAppBuilder app)
{
string staticFilesDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "web");
app.UseStaticFiles(staticFilesDir);

HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
}
}

在此处查看托管它的 Windows 服务...

    public partial class MyService : ServiceBase
{
private IDisposable webApp;
private const string ServiceAddress = "http://localhost:2345";

public MyService()
{

}

protected override void OnStart(string[] args)
{
InternalStart();
}

internal void InternalStart()
{
webApp = WebApp.Start<WebStartUp>(url: ServiceAddress);
}

protected override void OnStop()
{
}

public static void Main()
{
#if DEBUG
var service = new MyService();
Console.WriteLine("starting");
service.InternalStart();
Console.ReadLine();
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] {
new RaceManagerService();
}
ServiceBase.Run(ServicesToRun);
#endif

}
}

最佳答案

我想我知道出了什么问题:您使用的第 3 方框架要么处于 alpha 要么处于 beta 状态。根据您对它们的体验以及它们的总体状态,您不应该依赖它们。

我创建了一个几乎相同的设置 ( link to project files ) 并看到了完全相同的结果。使用的库还不能胜任任务。

编辑:

使用 Microsoft.Owin.StaticFiles 库的 0.23.20815.0 版本,我可以让它运行得更可靠。我根据最新的 Katana 资源自行构建了它。你可以在 my GitHub page 找到我的最新代码.

关于.net - 我只能使用 OWIN UseStaticFiles 提供一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220271/

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