Makale numarası: 313984 - Son Gözden Geçirme: 19 Mayıs 2005 Perşembe - Gözden geçirme: 3.0

Visual Basic Winsock Denetimi çalışma zamanı hatası 429 ve ölçeklenebilirlik

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Microsoft Winsock Denetimi (Mswinsck.ocx), çalışma anında dinamik olarak oluşturulması için tasarımlanmamış. Bu denetimi kullanmak için tasarım zamanında bir forma yerleştirin. Aksi takdirde çalışma zamanı hatası 429 alabilirsiniz, "ActiveX bileşeni nesneyi oluşturamıyor."

Ayrıca, sunucu ortamlarında, Winsock denetimi gibi ınternet ınformation Server (IIS) ile Microsoft ölçeklenebilirlik burada gerekebilir COM, kullanmayın.

Daha fazla bilgi

Çalışma zamanı hatası 429

Uygulama nondevelopment bilgisayarda (Visual Basic'in yüklü olduğu bir bilgisayar) çalıştırıyorsa, Winsock denetimi, tasarım zamanında erken bağlama çalıştırır, çalıştırma sırasında dinamik olarak oluşturan bir uygulama hata 429 çalışma zamanında başarısız olabilir:
Çalışma zamanı hatası '429':
ActiveX bileşeni nesneyi oluşturamıyor
Hata, hedef bilgisayardaki uygulamada kullanılan denetim nesneler için lisans bilgisi eksik olduğu için oluşur. MSWINSCK.ocx için işaretleyin ve sonra bir dağıtım paketi, paket ve Dağıtım Sihirbazı oluşturmak için proje başvurusu ayarlama girişimi. Bu, Winsock denetimi doğru sürümünü içeren bir kurulum paketi oluşturmak. Bir formdaki denetimin örneğini yerleştirilen sürece ancak, denetim için <a2>Lisans</a2> anahtarı uygulamasına derleneceği değil. Çalışma zamanında nesneleri oluşturmaya çalıştığınızda, uygulamanın lisans anahtarı sağlamanız yolu varsa, ve kod başarısız olur. Örneğin, aşağıdaki kodu tasarım zamanında düzgün çalışır, ancak Visual Basic'in yüklü olduğu bilgisayarlarda çalışma zamanında başarısız olur:
Dim myWinSock As MSWinsockLib.Winsock

Sub Main()
    ' Early binding does not work
    Set myWinSock = New MSWinsockLib.Winsock

    myWinSock.LocalPort = 5432
    
    myWinSock.Listen
    
    MsgBox ("Listening!")
    
    myWinSock.Close
End Sub
; bu nedenle, bu Visual Basic uygulamaya lisans bilgilerini derleyebilirsiniz bu nedenle, bir formdaki Winsock denetiminin bir örneğinin sağlamalısınız. Gerekirse, gizli form yapabilirsiniz. Bunu yapmak için <a0></a0>, "Yanlış" formun Visible özelliğini ayarlayın. Sonra dağıtım için hazırlayabilirsiniz. Aşağıdaki kod parçacığını yöntemi gösterir:
Dim myWinsock As MSWinsockLib.Winsock

Sub Main()
    ' Form1 is hidden
    Set myWinsock = Form1.myWinsock

    myWinsock.LocalPort = 5432
    
    myWinsock.Listen
    
    MsgBox ("Listening!")
    
    myWinsock.Close
End Sub
				
alternatif, bir <a0>Winsock</a0> denetim nesnesi üzerinde bir <a0>UserControl</a0> nesnesinin görsel Tasarımcısı genellikle <a0>Winsock</a0> denetimin veya alt işlevselliğini genişletmek için yapılan kendisini oluşturan bir denetim olarak koyabilirsiniz. Ancak, bu yaklaşım, lisans gereksinim gidermez. Kapsayıcı nesne kapsayıcı nesnesi başarıyla zamanında çalıştırmak için kullanılacak bir uygulama için bir form üzerinde sonuçta olmalıdır.

Ölçeklenebilirlik

Winsock denetimi sunucu uygulamalarında istemci veya ışık yük kullanılmak üzere tasarlanmıştır. Microsoft, birden çok iş parçacığı sunucu ortamlarında, özellikle IIS ve ölçeklenebilirliğin önemli olduğu COM, denetimi kullanımını desteklemez. Bu tür bir ortamda bu denetimi kullanarak kilitlenmeleri unpredicatible sorunlar neden olabilir. Microsoft, Winsock API ve bu gibi durumlarda GÇ Tamamlama bağlantı noktası (IOCP) gibi başka teknolojiler kullanımını düşündüğünüz önerir.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
274754  (http://support.microsoft.com/kb/274754/EN-US/ ) BILGI: Visual Basic ile oluşturulan kullanıcı denetimleri ile ilgili sorunlar lisans
241126  (http://support.microsoft.com/kb/241126/EN-US/ ) BILGI: Çalıştırma lisansı gerektiren UserControls dinamik olarak ekleme
192800  (http://support.microsoft.com/kb/192800/EN-US/ ) BILGI: IOCP bir Winsock Server'da kullanılırken tasarım konuları

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 4
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 5
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbdswnet2003swept kbapi kbctrl kbinfo kbnetwork kbwinsock KB313984 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:313984  (http://support.microsoft.com/kb/313984/en-us/ )