2012-01-11 38 views
0

我有一個C#服務應用程序,它通過UDP接收文件並將它們保存到本地驅動器中。該應用程序在本地操作系統上運行良好,但是當它從VM運行時,我從Socket lib和IO lib中獲取這些異常。在虛擬機中運行程序時產生錯誤

System.Net.Sockets.SocketException (0x80004005): An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full 

System.IO.IOException: Insufficient quota to complete the requested service. 

我測試了磁盤空間,但它是80%免費的。此外,VM上的Ram設置爲2GB。 我已經谷歌,但無法找到很多關於這個話題。

@大衛·斯特拉頓:
信息有關VM系統: 使用ESXi 4.1的 主機操作系統windows 2003

@塞斯·諾布爾
你的權利。發送數據包到源時會發生第一個異常。 第二個IO異常當它收到要寫入磁盤的數據包時。

+1

什麼類型的虛擬機? Virtual PC,Oracle VirtualBox,另一個?每個人都有不同的限制,並且***可能會有相關性。看到這篇文章:http://stackoverflow.com/questions/557879/why-am-i-getting-this-socketexception-in-my-c-sharp-service我認爲那裏的答案給你一個提示暗示'有。在某些方面,虛擬機比真實機器更有限,所以您可能需要查看虛擬化平臺的具體限制。 – David 2012-01-11 20:04:55

+0

應用程序是否正在發送或接收異常?你的描述聽起來像是接收,但是那個錯誤通常是你發送的。 – 2012-01-12 19:57:18

回答

0

如果這隻發生在虛擬機中,那麼實際虛擬機軟件的某些功能的實現很可能是一個問題,並且假設它不是由於您的編程錯誤而導致的。

相關問題