保存到网络驱动器后,VB Net抛出异常

时间:2014-01-13 15:13:43

标签: vb.net http .net-4.0

我正在编写一个VB.net程序,该程序应该访问API并下载一些数据。但即使只是基础知识,我也遇到了一些麻烦。我有这个简单的程序:

Public Class Form1

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim webClient As New System.Net.WebClient
    Dim result As String = webClient.DownloadString("http://www.myexternalip.com/raw")

    Debug.WriteLine(result)
  End Sub
End Class

正如预期的那样,程序运行并打印我的外部IP - 但只有在我不保存程序的情况下一旦我将程序保存到学校的网络文件服务器,程序就会停止工作:

A first chance exception of type 'System.Net.WebException' occurred in System.dll

程序本身完全相同。突然之间,将程序保存到我的网络文件夹后,它就会中断。我以前从来没有遇到过这个问题,过去6个月一直在使用网络文件服务器做VB.net程序。

毫不奇怪,如果我创建一个新程序(再次,不保存)并将“损坏的”代码复制并粘贴到新程序中,它运行正常。然后我保存它并抛出异常。

我的问题:

  • 这与参考文献有关吗?程序可能找不到System.Net的引用?但是我之前从未遇到过参考文献的问题。
  • 我在高中。这可能与计算机限制有关吗?不幸的是,我在这方面提供的信息很少。但是,一个简单的学校文件服务器似乎不太可能导致这种行为。
  • 此外,这是否属于另一个堆栈交换?也许超级用户?

感谢。

1 个答案:

答案 0 :(得分:2)

这听起来好像你遇到了Code Access Security的问题。默认情况下,.Net Framework版本2.0到3.5不会信任位于文件共享上的代码以供执行。 .Net Framework版本3.5sp1将其设置为更加理智,但它仍然是您需要注意的东西。

作为快速解决方法,您可以执行的操作是编写批处理文件,将文件从网络共享复制到本地系统,然后启动复制的程序。更强大的解决方法是更改​​系统上的代码访问安全设置,通常是在组策略级别。