DotRAS.dll не работает на Windows 10 Обновление 1803 - PullRequest
0 голосов
/ 03 мая 2018

У меня есть небольшая программа VB.NET, которая создает VPN-соединение. Это работает до (и в том числе) до Windows 10 Update 1709. Но после обновления 1803 я всегда получаю исключение:

DotRas.RasException: был обнаружен неправильный размер структуры. в DotRas.Internal.ThrowHelper.ThrowRasException (Int32 errorCode) в DotRas.Internal.RasHelper.GetEntryProperties (телефонная книга RasPhoneBook, имя строки) в DotRas.RasEntryCollection.Load () в DotRas.RasPhoneBook.Open (Строка phoneBookPath)

После моего рабочего кода Sub (до 1709)

Private Sub CreateVPN(VpnName As String, Destination As String, bAllUsers As Boolean)
    Dim PresharedKey As String = "XXXXXXXXXXX"

    Try
        Dim PhoneBook As New RasPhoneBook
        Dim sUsedPhoneBook As String = sPhoneBook
        If bAllUsers Then sUsedPhoneBook = sAllUserPhoneBook

        PhoneBook.Open(sUsedPhoneBook)

        'First remove existing VPN with same name, if exist!
        Try
            PhoneBook.Entries.Remove(VpnName)
        Catch ex As Exception
        End Try

        Dim VpnEntry As RasEntry = RasEntry.CreateVpnEntry(VpnName, Destination, DotRas.RasVpnStrategy.L2tpOnly, DotRas.RasDevice.Create(VpnName, DotRas.RasDeviceType.Vpn))
        VpnEntry.Options.UsePreSharedKey = True
        VpnEntry.Options.IPHeaderCompression = True
        VpnEntry.Options.SoftwareCompression = True
        VpnEntry.Options.NetworkLogOn = True
        VpnEntry.NetworkProtocols.IPv6 = False
        VpnEntry.Options.RequireEap = False
        VpnEntry.Options.RequirePap = True
        VpnEntry.Options.RequireChap = True
        VpnEntry.Options.RequireMSChap2 = True
        VpnEntry.Options.RequireEncryptedPassword = False
        VpnEntry.Options.UseLogOnCredentials = False
        VpnEntry.Options.CacheCredentials = False
        VpnEntry.DnsSuffix = "YYYYYYY.local"
        VpnEntry.Options.UseDnsSuffixForRegistration = True

       ' *********** THE FOLLOWING LINE WILL CRASH ON WINDOWS 10 1803 **********
        PhoneBook.Entries.Add(VpnEntry)
        VpnEntry.UpdateCredentials(RasPreSharedKey.Client, PresharedKey)
        If txt_Username.Text <> "" AndAlso txt_Password.Text <> "" Then
            VpnEntry.UpdateCredentials(New Net.NetworkCredential(txt_Username.Text, txt_Password.Text), False)
            VpnEntry.Options.CacheCredentials = True
            VpnEntry.Update()
        End If

        PhoneBook.Dispose()

        txt_Status.Text = VpnName & " successful added."
        txt_Status.ForeColor = Color.DarkGreen
    Catch ex As Exception
        Console.WriteLine("Error while adding " & VpnName & "." & Environment.NewLine & ex.ToString)
    Finally
    End Try
End Sub

Может ли кто-нибудь мне помочь? Я не нашел обновленный DotRAS.dll. Лучше всего будет рабочий пример без внешней DLL.

Заранее спасибо.

...