none
通过调用"ExplorerOM"启动接收位置的问题! RRS feed

  • 问题

  •  

    我写了一个控制台程序,想通过它定时启动被停止了的接收位置,具体代码如下:

    注:数据库联接的密码,在这里展示时,我写成了"*";

     

    static void RestoreErrorReceivePorts()
            {
                BtsCatalogExplorer root = new BtsCatalogExplorer();

                try
                {
                    root.ConnectionString = "server=.;database=BizTalkMgmtDb;uid=sa;password=******";
                    foreach (ReceivePort _ReceivePort in root.ReceivePorts)
                    {
                        for (int iCount = 0; iCount < _ReceivePort.ReceiveLocations.Count; iCount++)
                        {
                            if (_ReceivePort.ReceiveLocations[iCount].Enable == false)
                            {
                                _ReceivePort.ReceiveLocations[iCount].Enable = true;
                            }
                        }
                    }

                    root.SaveChanges();

           }
                catch(Exception e)
                {
                    throw e;
                }
            }

     

    具体问题现象:我在调试过程中,程序执行到 root.SaveChanges();就发生异常,具体错误信息:无法验证接收位置的TransportTypeData、Address或Public Address属性。用户"sa"登录失败。

    想请教一下,为什么会发生这个问题,怎么样解决这个问题,谢谢

     

    2009年1月7日 0:58

答案

  • 这个是用户权限引起的
    root.ConnectionString == @"Server=(local);Initial Catalog=BizTalkMgmtDb;Integrated Security=SSPI;";
    改了这个就可以了

    Studying WSS3
    • 已建议为答案 SharePoint_Wood 2009年2月12日 4:20
    • 已标记为答案 夏志宏 2009年3月20日 1:06
    • 取消答案标记 夏志宏 2009年3月20日 1:08
    • 已标记为答案 GaryZhang 2009年5月11日 4:49
    2009年2月12日 4:02

全部回复

  • 这段代码会启动这个biztalk group下的所有receive location, 应该是有某些SQL receive location启动失败.
    打开 bts admin console, applications, -> <all artifacts> -> receive location, -> 在右侧逐个启动, 看是否能全启动成功.
    2009年1月23日 8:52
  •  我试过了,所有的接收位置都能正常手动启动
    2009年2月1日 8:17
  • 这个是用户权限引起的
    root.ConnectionString == @"Server=(local);Initial Catalog=BizTalkMgmtDb;Integrated Security=SSPI;";
    改了这个就可以了

    Studying WSS3
    • 已建议为答案 SharePoint_Wood 2009年2月12日 4:20
    • 已标记为答案 夏志宏 2009年3月20日 1:06
    • 取消答案标记 夏志宏 2009年3月20日 1:08
    • 已标记为答案 GaryZhang 2009年5月11日 4:49
    2009年2月12日 4:02
  • 如果"BiztalkMgmtDb"数据库不在本机上呢?
    是不是root.ConnectionString = @"Server=(IP);Initial Catalog=BizTalkMgmtDb;Integrated Security=SSPI;";

    ???

    2009年3月20日 1:08