對於呈現驗證碼圖像的ASHX處理程序,我有一個非常棘手的問題。這讓人感到非常煩惱的是,兩個月前它運行良好,當我今天再次回到它時,它已停止工作。ASHX呈現爲破碎的圖像
我得到的是每隔一段時間就會在一個驗證碼中引發的頁面。這是一個挑戰的例子標記:
<img class="challengedtl" src="Challenge.ashx?tkn=0057ea27-4d35-4850-9c6f-7a6fdc9818e2"/>
的GUID引用在包含驗證碼的實際內容,以及驗證碼挑戰的狀態的SQL表,即一條記錄就被處理如果是這樣,用戶得到它的權利等
在找到此標記的頁面上,圖像顯示爲一個損壞的JPEG。當我在ASHX ProcessRequest()方法中刪除一個斷點時,我可以看到ASHX永遠不會被調用。
當我將URL從源屬性中取出並直接從瀏覽器的地址欄運行它時,我在ProcessRequest中打開了中斷點,捕獲的圖像呈現得很好。
我不相信我的ASHX代碼是問題,因爲它在我直接調用它時起作用。問題似乎是爲什麼ASHX沒有被主頁面調用。鑑於這是在2月份工作,我無法解釋正在發生的事情。
我知道自那時起我的機器發生了一些事情。我懷疑Windows Update或某個服務包的東西。原因是我的驗證碼處理包括跟蹤調用者的IP地址。回到工作狀態時,我的本地主機被註冊爲127.0.0.1(IPv4),但現在它被註冊爲:: 1(IPv6)。可能是紅鯡魚。
有誰知道可能是什麼原因造成的,或者您對如何解決此問題有任何建議嗎?
如果您查看瀏覽器中頁面的源代碼(即實際呈現的HTML),它看起來像什麼?什麼是「src」屬性值? – 2011-04-11 14:03:21
處理程序與包含您在上面發佈的html的頁面位於同一文件夾中嗎? – Andrew 2011-04-11 14:04:40
解決方案是將ashx移動到主頁的文件夾中。對於後人來說,Jon Skeet的問題的答案是,上面問題中顯示的src屬性直接從呈現的HTML中剪切,因此src屬性如圖所示。 – 2011-04-11 14:19:35