リモートサーバーに接続してデータなどを読み込むOPCクライアントを作成しています。私はadvosolのBGServerクラスを使用しています。問題は、Visual Studioでプログラムを実行すると、グループを追加する際に次のエラーが発生することです。Visual Studioで実行中のDCom/OPCアプリケーションは接続されませんが、.exeは完全に接続されます
は "HRESULTからの例外:0x80040202"
私の問題は、(http://stackoverflow.com/questions/5978721/opc-server-access-remotely-using-opcda-net-tools)に似ていますただし、DCOM設定が正しく構成されていることはわかっています。これは、同じコードをダブルクリックして実行すると問題が発生しないグループを追加できるためです。
私は、Visual Studioがいくつかの奇妙なユーザ/グループの下で動作していて、dcomの権限(主にコールバック)の下で動作していると推測しています。
編集:コード
BGServer server;
private void Form1_Load(object sender, EventArgs e)
{
server = new BGServer(this);
server.Connect(new OPC.Common.Host() { HostName = "xp-devbox2", UserName = "OPCUser", Password = "OPCUser" }, "FactoryTalk Gateway", null, ServerConnected);
}
void ServerConnected(BGException ex, object tag)
{
if (ex != null)
{
label1.Text = ex.Message;
}
else
{
//we've connected to the server. let's start subscribing to stuff!
server.AddGroup("Tuner DataGroup", true, 1000, 0, null, null, new OnBGSrvAddGroup(GroupAdded));
}
}
private BGGroup dGroup;
void GroupAdded(BGException ex, BGGroup group, object tag)
{
if (ex != null)
{
label1.Text = ex.Message;
}
else label1.Text = "Group Added";
}
したがって、これに対する解決策は明らかです。 プロジェクトプロパティのデバッグ部分で、 "Visual Studioホスティングプロセスを有効にする"をオフにします。 これはvshostを取り除き、私に接続させます。 しかし、私はこれが何をデバッグするのかはほとんど分かりません(そして、msdnの記事はそれほど役に立ちません)。 –
また、私はwpfアプリケーションでホスティングプロセスをオフにする方法を理解できません...そうです。 –