none
WCF的無法配置 536870912 位元組的 Managed 記憶體緩衝區 RRS feed

  • 問題

  • 各位前輩們

        目前我架設一隻window Service 會每隔一段時間自動呼叫WCF程式,目的將本地端的異質資料庫(FOXPRO) 上傳至架護遠端WCF後,再逐一將資料新增至SQL資料表,所以傳輸量很大,目前測試某個資料表64M的資料表,就無法成功上傳至架設遠端的WCF,出現訊息『資料表上傳失敗OperateADD:無法配置536870912 位元組的Managed 記憶體緩衝區。可用的記憶體總量可能很低

    系統配置環境如下

    Window  Service : Window7

    WCF :  window Server 2012

    SQL Server:  SQL Server 2008

    有人提到WCF的設定中將TransferMode改為”Streamed”,就不會把記憶體吃光,但我已經將設定檔設成以下,但仍然出現錯誤訊息資料表上傳失敗OperateADD:無法配置536870912 位元組的Managed 記憶體緩衝區。可用的記憶體總量可能很低


       <
     bindings>

          < basicHttpBinding >

              < binding maxReceivedMessageSize =" 804857600" maxBufferPoolSize= "804857600 " maxBufferSize =" 804857600" closeTimeout= "01:20:00 " openTimeout =" 01:20:00" sendTimeout =" 01:20:00" transferMode= "Streamed " >

                < readerQuotas maxDepth =" 804857600" maxStringContentLength= "804857600 " maxArrayLength =" 804857600" maxBytesPerRead= "804857600 " maxNameTableCharCount =" 804857600" />

              </ binding >

          </ basicHttpBinding >

        </ bindings >

    不知各位前輩們還有何好辦法?  感謝各位前輩們的指導!

    2014年1月20日 上午 10:16

解答

  • .Net 單一陣列不能超過 512 MB

    VS98 以前單一陣列不能超過 256 MB

    Win3.1 年代單一陣列不能超過 8 MB

    所以請分次上傳。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 joycehong 2014年1月21日 上午 12:20
    2014年1月20日 下午 01:10

所有回覆

  • .Net 單一陣列不能超過 512 MB

    VS98 以前單一陣列不能超過 256 MB

    Win3.1 年代單一陣列不能超過 8 MB

    所以請分次上傳。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 joycehong 2014年1月21日 上午 12:20
    2014年1月20日 下午 01:10
  • 謝謝您的回答~  我知道問題了
    2014年1月21日 上午 12:20