麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

COM+ Web 服務:通過復選框路由到 XML Web Services (轉)5

2024-09-05 20:55:55
字體:
來源:轉載
供稿:網友

在圖 3 所示的 com+ 應用程序導出向導中,輸入代理 .msi 文件的位置和名稱。


  1. 在圖 3 所示的 com+ 應用程序導出向導中,輸入代理 .msi 文件的位置和名稱。

    圖 3:com+ 應用程序導出向導
  2. 將代理 .msi 文件安裝在單獨的客戶端計算機上,作為預先生成的 com+ 應用程序。
    安裝時將對代理進行適當的配置,以便通過 soap 訪問正確的服務器和虛擬根。對于客戶端激活,可以不使用 wsdl 名字對象,而使用常規非托管的 com+ 激活(例如,cocreateinstancecreateobject 等)。在服務器上創建并在單獨的客戶端計算機上安裝上述 visual basic 計算器示例的應用程序代理后,以下 vbscript 將通過 soap 訪問該服務器:
    set c = createobject("vb6soap.calc")for i = 1 to 10 wscript.echo i & " " & c.add(i,i) & " " & timenext 

    如果代理程序沒有啟用 com+ web 服務,則上述 vbscript 代碼將使用 dcom 訪問服務器應用程序。

事務性組件示例


簡單的計算器遠算不上工作量繁重的業務應用程序,因此我們現在考慮帶有對象池的適于 com+ 事務性組件的應用程序。
最容易管理和配置的組件是由 servicedcomponent 導出的托管代碼組件,如以下 c# 示例所示:
using system;using system.reflection;using system.runtime.interopservices;using system.enterpriseservices;using system.data;using system.data.sqlclient;[assembly: applicationname("sctrans")][assembly: applicationactivation(activationoption.server,    soapvroot="sctrans")][assembly: assemblykeyfile("sctrans.snk")]namespace sctrans{  public interface isctrans  {   string countup (string key);  }  [objectpooling(minpoolsize=0, maxpoolsize=25)]  [justintimeactivation(true)]  [classinterface(classinterfacetype.autodual)]  [transactionattribute(transactionoption.requiresnew)]  public class sctranssqlnc : servicedcomponent, isctrans  {   [autocomplete]   public string countup (string key)   {      _command = new sqlcommand("", _connection);      _command.commandtype = commandtype.text;      _command.connection.open();     _command.commandtext = "update callcount with (rowlock) set       callcount = callcount + 1 where machine='" + key + "'";     _command.executenonquery();      _command.connection.close();     _numcalls++;     return (_numcalls + " nc " + _guid);   }    protected override bool canbepooled()   {     return true;    }   private int _numcalls = 0;   private string _guid = guid.newguid().tostring();   private sqlconnection _connection =    new sqlconnection("user id=myuser;password=my!password;   database=soaptest;server=myserver");   private sqlcommand _command;      }}

圖 3:com+ 應用程序導出向導

將代理 .msi 文件安裝在單獨的客戶端計算機上,作為預先生成的 com+ 應用程序。
安裝時將對代理進行適當的配置,以便通過 soap 訪問正確的服務器和虛擬根。對于客戶端激活,可以不使用 wsdl 名字對象,而使用常規非托管的 com+ 激活(例如,cocreateinstance、createobject 等)。在服務器上創建并在單獨的客戶端計算機上安裝上述 visual basic 計算器示例的應用程序代理后,以下 vbscript 將通過 soap 訪問該服務器:

set c = createobject("vb6soap.calc")
for i = 1 to 10
wscript.echo i & " " & c.add(i,i) & " " & time
next

如果代理程序沒有啟用 com+ web 服務,則上述 vbscript 代碼將使用 dcom 訪問服務器應用程序。

事務性組件示例
簡單的計算器遠算不上工作量繁重的業務應用程序,因此我們現在考慮帶有對象池的適于 com+ 事務性組件的應用程序。

最容易管理和配置的組件是由 servicedcomponent 導出的托管代碼組件,如以下 c# 示例所示:

using system;
using system.reflection;
using system.runtime.interopservices;
using system.enterpriseservices;
using system.data;
using system.data.sqlclient;

[assembly: applicationname("sctrans")]
[assembly: applicationactivation(activationoption.server,
   soapvroot="sctrans")]
[assembly: assemblykeyfile("sctrans.snk")]
namespace sctrans
{
  public interface isctrans
  {
   string countup (string key);
  }

  [objectpooling(minpoolsize=0, maxpoolsize=25)]
  [justintimeactivation(true)]
  [classinterface(classinterfacetype.autodual)]
  [transactionattribute(transactionoption.requiresnew)]
  public class sctranssqlnc : servicedcomponent, isctrans
  {
   [autocomplete]
   public string countup (string key)
   {
      _command = new sqlcommand("", _connection);
      _command.commandtype = commandtype.text;
      _command.connection.open();
     _command.commandtext = "update callcount with (rowlock) set
      callcount = callcount + 1 where machine='" + key + "'";
     _command.executenonquery();
      _command.connection.close();
     _numcalls++;
     return (_numcalls + " nc " + _guid);
   }

   protected override bool canbepooled()
   {
     return true;
   }
   private int _numcalls = 0;
   private string _guid = guid.newguid().tostring();
   private sqlconnection _connection =
   new sqlconnection("user id=myuser;password=my!password;
   database=soaptest;server=myserver");
   private sqlcommand _command;
   
  }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 羞羞答答视频 | 天天撸日日夜夜 | 国产噜噜噜噜久久久久久久久 | 手机免费看一级片 | 日本成人一区二区 | 爱视频福利 | 91羞羞 | 男人久久天堂 | 日韩黄色一级视频 | 成年人黄色免费电影 | 一级外国毛片 | 亚洲xxx在线观看 | 一级免费观看 | 久久精品99国产国产精 | 在线观看va | 特片网久久| 中文字幕爱爱视频 | 久久手机在线视频 | 国产成人在线一区二区 | 成人羞羞在线观看网站 | 高清国产午夜精品久久久久久 | 一区国产精品 | qyl在线视频精品免费观看 | 午夜精品福利影院 | 精品一区二区三区不卡 | 一区二区三区日韩电影 | 最近中文字幕一区二区 | 国产1区在线观看 | 欧美一级黄色片在线观看 | 天天看成人免费毛片视频 | 视频一区二区精品 | av在线浏览 | 热99在线视频 | 成人黄色网战 | 深夜免费视频 | 黄色毛片视频在线观看 | 欧美人xxx| 亚洲性生活免费视频 | 黄污网站在线观看 | 国产日本在线 | 午夜啪视频 |