2010-05-24 21 views
0

我有一個簡單的ASP.NET應用程序託管在本地IIS6下,在Vista下。ASP.NET應用程序在通話後掛起

它包含一個按鈕,當我單擊時,我執行一段代碼來識別WAV文件中的文本(使用System.Speach.Recognition.SpeechRecognition類),並將文本顯示在標籤中。

該代碼在桌面應用程序中效果很好,它幾乎可以在網絡上運行...我幾乎可以這麼說,因爲如果我調試了,我可以看到識別器從WAV返回正確的文本,我可以看到我正在完成按鈕單擊的處理程序,沒有錯誤,但是沒有任何內容顯示在我的頁面中,並且該頁面顯示爲正在加載......它正在掛起,或者其他什麼......沒有錯誤,沒有超時,沒有任何內容。只是加載...

我不知道這個細節會有所幫助,但爲了使這塊是已經對Web應用程序的桌面應用程序的工作運行的代碼,我不得不設置的身份我的應用程序的ApplicationPool到LocalSystem(安全漏洞,我知道)。否則,我會收到拒絕訪問錯誤(0x80070005(E_ACCESSDENIED))。

你有什麼想法爲什麼這樣的電話掛起?我爲此奮鬥了兩天多,時間壓迫着我,而我不知道......任何幫助都非常受歡迎!

謝謝!

+0

你應該讓Web服務器上的另一個用戶,給它的asp.net安全設置,然後模擬你的web.config。看看是否有幫助? 當應用程序掛起時,您是否在服務器上的事件查看器中看到任何內容? – TheGeekYouNeed 2010-05-24 18:06:09

回答

1

stuglles的另一一週後,我發現了一個解決問題的辦法。我發佈這個只是爲了讓其他可能有這個問題的人更快找到解決方案。

解決的辦法是要調用的方法制作不同的線程語音識別。我認爲這會在認可結束後在該線程中強制釋放所有資源。

我無法理解爲什麼這甚至發生在第一位(我使用塊和我關閉和處置所有想象中的所有對象),但我懷疑是一個內存釋放問題...

無論如何,一個非常簡單的調用另一個線程修復它!

相關問題