Windows 서비스 내에서 http를 통해 정적 콘텐츠를 제공하려면 OWIN을 사용하고 있습니다. (Windows 서비스 용 웹 관리 툴을 임베드하려면). 하나의 파일 만 OWIN UseStaticFiles로 제공 할 수 있습니다.
나는 이상한 문제가 발생할 수 :- 내가 서비스를 실행하면, 난 단지 "웹"폴더에 한 파일, 모든 연속적인 호출에 액세스 할 수있는 브라우저 텔링에 결과 그 페이지는 사용할 수 없습니다 (ERR_CONNECTION_RESET).
- 임베디드 WebApi 은 액세스 할 수 있습니다..
- 같은 주소와 포트로 서비스를 다시 시작하면 파일이 보이지 않습니다.
- 나는 다른 포트에서 서비스를 다시 시작하면 그런데
이,이 "웹"폴더에서이 파일이에 대해 "항상 복사"에 설정되어 ... 일단, 나는 파일에 액세스 할 수 있습니다 "출력 디렉토리로 복사"속성.
누구나 무슨 일이 일어날 지 알고 있습니까?
내 시작 구성 클래스 여기를 참조하십시오
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);
}
}
...를 호스팅하는 여기에 내가 무슨 일이 잘못 알고 있다고 생각
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
}
}
내가 ... 다행 누군가가 내 이야기를 백업 해요 당신은 같은 목표를 달성하기 위해 어떤 대안을 알고 일이? – Stivni
어쩌면 내가 이러한 라이브러리를 포크해야한다. 대신에 풀 요청을 보내라. – Stivni
@Stivni 필자는 Owin을 처음 접했고 확실한 대안을 모른다. 이 모양이 좋아 보입니까 : [SendFile] (http://owin.org/extensions/owin-SendFile-Extension-v0.3.0.htm)? 당신은 또한 IIS에서 호스팅되는 웹 API를 사용할 수 있지만, 궁금한 점이 없다고 생각합니다. – meilke