2009-01-29 132 views
1

我想在Windows Server 2003上运行一个FTP应用程序并运行之前,这个应用程序在Windows XP专业版上运行时没有问题。我试着用Google搜索答案,但唯一的“解决方法”我似乎可以在微软的网站上找到并不能解决问题(正在编辑注册表并添加一个值为1的新字段DisableRawSecurity(在正确的区域中) 。我在VB中调试这个应用程序.Net在Windows Server 2003上的SocketException

例外情况:试图以禁止其访问权限的方式访问套接字 按照这里要求的是它的问题的子代码:

Private Sub Listen() 
     Try 

      ListenerSocket.Bind(LocalEndPoint) 
      ListenerSocket.Listen(100) 
      While True 
      ListenerSocket.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), ListenerSocket) 
      End While 
     Catch ex As System.Exception 
      Stop 
     End Try 
     ListenerSocket.Shutdown(SocketShutdown.Both) 
    End Sub 

任何帮助将在Windows理解

+0

我们可以看到一些源代码来帮助调试吗? – 2009-01-29 15:55:46

回答

0

一切。有一个访问控制列表(ACL)。在我看来,运行应用程序的用户在ACL中没有适当的权限来执行您要求的操作。我不知道你将如何去寻找一个原始套接字的ACL,但那是我开始寻找的地方。

1

您可能会遇到问题,因为对BeginAccept的调用处于无限循环。您应该只调用一次,直到AsyncCallback被打中,然后再次调用EndAccept和BeginAccept。所以基本上你只需要调用BeginAccept一次,然后在每次连接建立之后再次调用BeginAccept。

0

你甚至在应用程序中使用Raw套接字吗?如果没有,那么该知识库文章不适用,并且您的例外是由于其他原因。