我正在ASP.net 4.0中工作,这个程序旨在读取pop3.mail.com服务器上的电子邮件。
错误代码:
请求类型System.Net的权限。SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.日志含义
其他电子邮件程序,如Pop3Client和OpenPop.dll不能与ASP.net 4.0一起工作。
这个程序可以在4.0中工作,因为没有附加的外部dll程序。
代码:Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim tcpclient As New TcpClient()
tcpclient.Connect("pop3.mail.com", 995)
Dim sslstream As System.Net.Security.SslStream = New SslStream(tcpclient.GetStream())
sslstream.AuthenticateAsClient("pop3.mail.com")
Dim sw As System.IO.StreamWriter = New StreamWriter(sslstream)
Dim reader As System.IO.StreamReader = New StreamReader(sslstream)
sw.WriteLine("USER email@mail.com")
sw.Flush()
sw.WriteLine("PASS pass1")
sw.Flush()
sw.WriteLine("RETR 1")
sw.Flush()
sw.WriteLine("Quit ")
sw.Flush()
Dim str As String = String.Empty
Dim strTemp As String = String.Empty
While ((strTemp = reader.ReadLine()) <> "")
If strTemp = "." Then
Exit While
End If
If strTemp.IndexOf("-ERR") <> -1 Then
Exit While
End If
str = str & " " & strTemp
End While
TextBox1.Text = str
Catch ex As Exception
Response.Write(ex.Message)
End Try
End Sub
请求类型System.Net的权限。SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
我将假设这与ASP中的用法有关。净上下文。如果是这样的话,
-
如果这是在共享的托管环境中,那么很可能(检查)您的托管提供商将有ASP。网络信任级别设置为
medium trust
-
在本地机器上执行dev时,您正在
full trust
中执行dev。如果你设置ASP。. Net本地到medium trust
,你应该能够在你的本地开发环境中重现错误来确认。
这个差别很重要。参考这个MSDN文档-表格将会有所帮助。您将看到Medium Trust
中的System.Net.SocketPermission
具有No权限。
Hth…