2015-10-16 27 views
0

我自己託管使用Microsoft.Owin.Hosting.WebApp的網絡應用程序,但在向服務器發出HEAD請求之後,它會引發500錯誤。當試圖拉一個JSON文件時,錯誤更改爲504.Owin SelfHosted WebApp不履行HEAD請求

我見過很多解決方案,但沒有人應用到WebApp。如果使用NancyFX進行託管,我可以將AllowChunkedEncoding設置爲false以使其正常工作。但那doesn't seems like a good option

代碼片段:

var options = new StartOptions("http://localhost:8080") 
{ 
    ServerFactory = "Microsoft.Owin.Host.HttpListener" 
}; 
WebApp.Start<Startup>(options); 

啓動的執行情況:

public class Startup 
    { 
    public void Configuration(IAppBuilder app) 
    { 
     app.UseNancy(); 
    } 
    } 

兩個調用瀏覽器或使用小提琴導致失敗: enter image description here

我還沒有加入南希模塊的實現在這裏,因爲它不是問題應該解決的地方,因爲我還想要提供靜態內容,但允許HEAD請求。

是否有人知道如何從自託管的OWIN服務HEAD動詞?

回答

0

我剛碰到類似這樣的問題。我瞭解到,HEAD方法響應應該與GET響應相同,但不含內容的

這裏的相關RFC:https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

例如,我有我的自我託管的Web API的應用程序:

[HttpHead] 
[HttpGet] 
[ResponseType(typeof(string))] 
public HttpResponseMessage LiveCheck(HttpRequestMessage request) 
{ 
    HttpResponseMessage response; 

    response = request.CreateResponse(HttpStatusCode.OK); 
    if (request.Method == HttpMethod.Get) 
    { 
     response.Content = new StringContent("OK", System.Text.Encoding.UTF8, "text/plain"); 
    } 
    return response; 
}