各位前輩好
我正在維護一支軟體,是使用C# WPF開發的,使用.Net framework 3.5。
Server端使用Node.js Express開發,掛在AWS EC2上
在軟體內實作 WebClient.DownloadFile(URL)
時,特定環境會發生 Http status code 403 error
。
這個問題僅發生在客戶的環境,在我的開發環境中一切正常,但是在客戶的環境每次都是403 Error。
我到伺服器內查看Log,發現客戶的request header都沒有帶User-Agent,而我的環境都會有帶有User-Agent,我推測就是因為這樣導致403 Error,如果不是希望前輩能引導一個方向。
如果是客戶的IT環境導致User-Agent不見,我有沒有什麼方式能引導客戶解決問題?
目前嘗試在C#軟體的Code中給予User-Agent,還在等待客戶測試中
WebClient.Headers.Add("User-Agent: Other");
WebClient.DownloadFile(URL);
對於這個現象完全摸不著頭緒,有任何建議都很感謝
-- 更新 --
客戶使用瀏覽器可以下載檔案成功,但是透過軟體就會失敗
另客戶表示以下程式碼沒有解決問題
WebClient.Headers.Add("User-Agent: Other");
WebClient.DownloadFile(URL);
-- 更新 2 --
客戶不走公司內網,軟體就可以正常運作,目前應該會往客戶的網路環境去追查
昨日在自己的環境發出一個header裡面只帶有host的request,發現也是可以正常使用軟體,可能這樣就跟user-agent沒什麼關係了吧...?
感謝各位大大的協助,有任何建議也再麻煩告知
-- 更新 3 --
雖然事情過的有點久了,但還是更新一下狀況QQ
最後和客戶要求雙方錄製封包,發現客戶的網路環境中還有一台proxy server,所有封包出去/進來都會經過它,而它就是造成403的主因
Server丟200 OK的封包出去,經過proxy server之後,就被改成403 forbidden了
目前還正在跟proxy server的廠商確認原因中
Http status code 403 error =>https://web.archive.org/web/20130820022340/http://www.getnetgoing.com/HTTP-403.html
感謝rogeryao大大,我馬上研究一下
rogeryao大大
請教一下,
如果另外一個環境可以正常運作的話,下方的1、3、4點是不是就可以排除了
至於第2點,我有在第三個網路環境下測試,也是正常運作,是不是也算是排除此項了呢
基本上,應該是"客戶的環境"的 web server 的問題 :
1.路徑有問題
2.目錄的權限有問題 , 導致連線被拒絕
rogeryao大大
目前也是猜測客戶的環境的問題
因為客戶不走他們自己的內網時,軟體都能正常運作
但客戶希望能輔助他,讓他們公司的IT解決這個問題
參考
https://dotblogs.com.tw/rainmaker/2013/05/17/104436
用 Fiddler 解析
rogeryao大大
感謝分享,昨天也和AWS工程師學到fiddler來debug
會再試試看