1. 程式人生 > >Server sent unexpected return value (500 Internal Server Error) in response to PUT request 問題解決

Server sent unexpected return value (500 Internal Server Error) in response to PUT request 問題解決

最近整理公司SVN伺服器上的專案,為原來的公用版本拆分了版本,然後分開後重新建立版本提交,結果嘗試多次均告失敗,錯誤如下:

Error: Server sent unexpected return value (500 Internal Server Error) in response to  
Error:  PUT request for  
Error:  '/svn/LAN6505/!svn/xxx/trunk/xxx.java'  
Completed!:   

認真讀文章發現思路大致是這樣:1、檢查通訊過程是否遇到資料包分片。2、如果出現分片嘗試用更小的PUT值進行ping,直到分片消失。3、修改put值為未出現分片時的值。

按照該文章所提供方法成功解決該問題,方法大致如下:

第一步: 檢視 MTU

命令列輸入如下命令:

netsh interface ipv4 show subinterfaces

結果如下


   MTU  MediaSenseState   傳入位元組  傳出位元組      介面
------  ---------------  ---------  ---------  -------------
4294967295                1          0       3299  Loopback Pseudo-Interface 1
  1500                1  1099698514  295780042  本地連線
  1500                1          0     217835  本地連線 2
  1500                1          0     197384  VMware Network Adapter VMnet0


第一個便是用於聯網的網絡卡連線,後兩個是虛擬機器,這裡看到

1500                1  1099698514  295780042  本地連線

便是聯網的MTU資訊值

第二步: 找出不進行分片的 MTU值

輸入一下命令:

ping 你連線的域名 -f -l 1472
比如我的是:ping svn.o.xxxxx.com -f -l 1472
-f 引數表示資料包作為一個整體傳送,不分片, 引數 -l 1472 為設定資料包的大小。(1472 = 預設MTU值1500 – 包頭資料 28 bytes)
結果如下:

正在 Ping xxx.xx.org [125.xx.xx.xx] 具有 1472 位元組的資料:
來自 125.xx.xx.xx 的回覆: 需要拆分資料包但是設定 DF。
需要拆分資料包但是設定 DF。
需要拆分資料包但是設定 DF。
需要拆分資料包但是設定 DF。

意思為報文傳輸失敗,需要拆分才能傳送。

然後嘗試用更小的值去ping,比如1460,1450等,知道能夠ping通。

記錄能ping通的最大mtu值,然後加28,比如我的是1464+28=1492

第三步: 設定 MTU值

輸入一下命令修改MTU值:

netsh interface ipv4 set subinterface "本地連線" mtu=1492 store=persistent
"本地連線"名稱根據自己網絡卡連線名稱修改
搞定。