.NET .NET рдореЗрдВ OPC DA 2 рдзреЛрдЦрд╛ рдкрддреНрд░

рджреВрд╕рд░реЗ рджрд┐рди рдореБрдЭреЗ OPC DA 2.05a рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдХреЙрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдерд╛, рдФрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддрд╛ рдерд╛ред

1. рдУрдкреАрд╕реА рдбреАрдП рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдУрдкреАрд╕реА рдбреАрдП 2.05 рдП рдХреНрдпрд╛ рд╣реИ


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдУрдкреАрд╕реА, рдЦреБрд▓реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рдЪрд╛рд▓рди рд╡рд╕реНрддреБрдУрдВ, рдЬреИрд╕реЗ рдХрд┐ SCADA рд╕рд┐рд╕реНрдЯрдо, рдХреЗ рдмреАрдЪ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред OPC DA (рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕) рдЗрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдпрд╣ рдЙрдкрдХрд░рдгреЛрдВ рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рдордп-рд╕рдордп рдкрд░ SCADA рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдУрдкреАрд╕реА рдбреАрдП рдХреЙрдо рддрдХрдиреАрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдУрдкреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ COM рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рддреА рд╣реИред

2. рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреНрдпрд╛ рд╣реИрдВ



рдУрдкреЗрдХ рдлрд╛рдЙрдВрдбреЗрд╢рди рд╕реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝

рдЙрдиреНрд╣реЗрдВ OPC .NET API 2.00 Redistributable рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рд╣реА рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ "рд╕рджрд╕реНрдп" (= рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдХреБрдЫ рдкреИрд╕реЗ рдЬреЛрдбрд╝рдиреЗ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдУрдкреАрд╕реА рдХреЛрд░ рдШрдЯрдХ рднреА рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд░реВрдЯ рдЯреНрд░реИрдХрд░ рдкрд░ рджреЛрдиреЛрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдУрдкреЗрдХ рдлрд╛рдЙрдВрдбреЗрд╢рди рд╕реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдПрдХ рдХрдВрдкрдиреА рдЬреЛ "рдЦреБрд▓реЗ рдорд╛рдирдХ" рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддреА рд╣реИред
рдореИрдВ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред рдХрд╣реАрдВ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХрд┐рд╕ рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреВрд░реНрдг рд╣реИ - рдЖрдк рдУрдкреАрд╕реА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ - рдПрдХ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдореМрдХрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдЕрдкрдШрдЯрди рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдУрдкреАрд╕реА рдПрдИ, рдУрдкреАрд╕реА рдПрдЪрдбреАрдП) рдореЗрдВ рдкреИрджрд╛ рд╣реБрдИрдВ рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдореИрдВ рд╕рдорд╛рдзрд╛рди рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рд▓рд┐рдЦреЗрдВред

рдЕрдбрд╡рд╛рд╕реЛрд▓ рд╕реЗ рдШрдЯрдХ

рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдШрдЯрдХ (рдФрд░ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛)ред рдореИрдВрдиреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ - рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЬрд┐рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб (!) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛ рдерд╛ред рдЗрд╕ рд╕реЗрдЯ рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдШрдЯрдХ OPC - winforms рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ OPC рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдВрджрд░ рдЬреЛ рдХреБрдЫ рд╣реИ рдЙрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛, рд╡реЗ рдмрд╛рдзрд┐рдд рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреА рд╕рдордп рд╕реАрдорд╛ рд╣реИ, рдлрд┐рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдерд╛, рдФрд░ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрд╕реЗрдВрдмрд▓реА, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо = AnyCPU рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ 32-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдпрд╣ 32-рдмрд┐рдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдФрд░ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ, рдФрд░ 64-рдмрд┐рдЯ рдореЗрдВ 64 рдмрд┐рдЯ рдХреА рддрд░рд╣ред рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг "CLSID рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ" рдлреЙрд░реНрдо рдХреЗ COM-рдЗрдВрдЯрд░реЙрдк рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ secpol.msc, dcomcnfg рдФрд░ compmgmt.msc рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рджрд┐рди рдорд╛рд░реЗред рдЦреБрд╢ рд╕рдВрдпреЛрдЧ рд╕реЗ, рдореИрдВрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рджреВрд╕рд░реА рдХрд╛рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ред ILDASM рдФрд░ рдПрдХ рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЯрд╛рд░рдЧреЗрдЯрдкреНрд▓рдЧреЙрд░реНрдбрд░ рдлреНрд▓реИрдЧ (рд╕реАрдПрд▓рдЖрд░ рд╣реИрдбрд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ) рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд┐рдпрд╛, рджреВрд╕рд░реЗ 32BITREQUIRED рдмрд┐рдЯ рдХреЛ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдирд┐рд╖реНрдХрд░реНрд╖ - рдпрджрд┐ COM рдЗрдВрдЯрд░реЙрдк рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдЕрдиреБрд░реВрдкрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рд╡реИрд╕реЗ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреА (рд╕реНрдорд╛рд░реНрдЯрдЕрд╕реНрдкреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдСрдмрдлрд╕рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдХрд╛ рд╕реАрдПрд▓рдЖрд░ рд╣реЗрдбрд░ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд┐рдд рдерд╛ред

OPCDOTNET рд▓рд╛рдЗрдмреНрд░реЗрд░реА

Codeproject.com рдкрд░ рдПрдХ рдЙрддреНрд╕рд╛рд╣реА рд╕реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдореИрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕рдХрд╛ рдХреЛрдб рдерд╛ рдЬреЛ рдореЗрд░реЗ рдкреВрд░реНрд╡рд╡рд░реНрддреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдУрдкреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдмрд╛рддрдЪреАрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдЦ рдореЗрдВ рдЬреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕рд┐рд░реНрдл рд╕реНрдерд╛рдиреАрдп рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред рдкреЗрд╢реЗрд╡рд░реЛрдВ - рдЙрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЧреНрд░рд╛рд╣рдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ред

3. рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ


рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдЖрдкрдХреЛ COM / DCOM рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдерд╛ред рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдореЗрд░реА рддрд░рд╣ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрди рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдкрд╛рд░рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рдУрдкреАрд╕реА рдлрд╛рдЙрдВрдбреЗрд╢рди рд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрддреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдУрдкреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рд╕рд┐рд░реНрдл рдЗрдВрдЯрд░реЙрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

4. рд╕рдорд╕реНрдпрд╛рдПрдВ


- рдкрд░реАрдХреНрд╖рдг рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрд░рдкреАрд╕реА рд╕рд░реНрд╡рд░ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ - рдкреЛрд░реНрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛ 135 рдХрдо рд╕реЗ рдХрдо (рдореБрдЦреНрдп DCOM рдкреЛрд░реНрдЯ)ред

- рдПрдХреНрд╕реЗрд╕ рдЕрд╕реНрд╡реАрдХреГрдд - рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдиреАрдЪреЗ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ

- CLSID рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ - рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреЛрд░ рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВ, рд╢рд╛рдпрдж рд╡реЗ рдЧрд╛рдпрдм рд╣реИрдВред рдпрд╛ рдЗрдВрдЯрд░реЙрдк рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ AnyCPU рд╣реЛ рд▓реЗрдХрд┐рди рдпрд╣ x86 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

- CoCreateInstanceEx рдПрдХ рд╡реИрдз COM рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХреНрд╕реЗрд╕ рдЕрд╕реНрд╡реАрдХреГрдд (0x80070001) COM рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЖрдзреЗ рджрд┐рди рддрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдмрд╛рдд рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдк рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ SERVER_INFO рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП CoCreateInstanceEx рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рдорд┐рд▓рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдирд┐рдореНрди QueryInterface рдХреЙрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдХреНрд╕реЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рд╣реЗрдЬрддреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдЕрд╕реНрд╡реАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдореИрдЬрд┐рдХ рдлрд╝рдВрдХреНрд╢рди CoInitializeSecurity рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ COM рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред рдХреЛрдб:

[DllImport("ole32.dll")] private static extern int CoInitializeSecurity(IntPtr pSecDesc, int cAuthSvc, SOLE_AUTHENTICATION_SERVICE[] asAuthSvc, IntPtr pReserved1, uint dwAuthnLevel, uint dwImpLevel, IntPtr pAuthList, uint dwCapabilities, IntPtr pReserved3); public static void InitializeSecurity() { int errorCode = CoInitializeSecurity(IntPtr.Zero, -1, null, IntPtr.Zero, 1, 2, IntPtr.Zero, 0, IntPtr.Zero); if (errorCode != 0) { throw new ExternalException("CoInitializeSecurity: " + GetSystemMessage(errorCode), errorCode); } } 


рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, RPC_E_TOO_LATE рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ рдЖрдорддреМрд░ рдкрд░ Visual Studio рд╣реЛрд╕реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ CoInitializeSecurity рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрдИ рд▓рд┐рдВрдХ рд╣реИрдВ:
рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЦреБрдж рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХреА
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░реЛрдк рдлрд╝рдВрдХреНрд╢рдВрд╕
Microsoft рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдСрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИ

5. рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ


рдУрдкреАрд╕реА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдВрд╕реНрдерд╛рди рдХрдИ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DCOM рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ, рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИрдВ RPC рд╕рд░реНрд╡рд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдЖрджрд┐ред рдкрдВрдЬреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкрдВрдЬреАрдХрд░рдг рдореБрдлреНрдд рд╣реИред

DCOM рдЯреНрдпреВрдирд┐рдВрдЧ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ - рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ 1 рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред

Source: https://habr.com/ru/post/In132780/


All Articles