2016-07-23 72 views
0

我無法使用HttpClient的PostAsJsonAsync方法將「大」對象發佈到我的web api中。這些對象包含一個base64編碼的圖像文件。ASP.NET Web API請求未達到控制器操作

經過一段時間這似乎是客戶端的超時設置,異常

「任務被取消了。」

HttpClient拋出。超時時間已經設置得非常高(10分鐘)。這僅在大於〜2 MB的文件時纔會發生。任何更小的工作正常。我知道該請求甚至不會觸發控制器方法中的第一行代碼,因爲第一行是日誌行,日誌是空的。服務器事件查看器中沒有例外。

很難確定問題,因爲當我在本地IIS上部署Web API時,控制器工作正常。但是,當我將其部署到Azure虛擬機上時,它僅適用於小文件。 web.config文件是相同的。

maxRequestLength已經設置得足夠高。

<httpRuntime targetFramework="4.5.2" maxRequestLength="1048576" /> 

而不是在Azure虛擬機託管的IIS,我只是試圖部署API作爲應用程序服務。同樣的事情發生在那裏。

回答

0

您也可以嘗試設置這個限制:

<system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="1073741824" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 

注意違背maxRequestLength參數,該值是以字節爲單位。

+0

感謝您的建議。但同樣的事情發生,沒有區別.. – Erik

+0

在你的Web服務器前面有一個負載平衡器有這樣的限制嗎?因爲就ASP.NET而言,這應該起作用。 –

+0

我不知道。這是一個Azure虛擬機,端點在tcp端口80和443上。 我將在Microsoft提交支持憑單。 – Erik

相關問題