Remoting IIS 发布

1.创建类库项目.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
    public class Class1 : MarshalByRefObject,Interface1
    {
        #region Interface1 Members
        public string SendMessage(string msg)
        {
            return "Hello " + msg;
        }
        #endregion

        public override object InitializeLifetimeService()
        {
            return null;
        }
       
        public int add(int a, int b)
        {
            return a + b;
        }

    }

    public interface Interface1
    {
        string SendMessage(string msg);
    }

}
生成类库DLL文件.

 

2. 在IIS建立网站或虚拟目录

  指定Remoting的发布目录,例如,以d:/test做为网站或虚拟目录路径,在test下建立文件夹bin并将类库DLL文件复制到里面.

  创建web.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.runtime.remoting>
        <application>
            <service>
                <wellknown type="ClassLibrary1.Class1,ClassLibrary1" objectUri="Class1.soap"  mode="Singleton" />
            </service>
            <channels>
                <channel ref="http"/>
            </channels>
        </application>
    </system.runtime.remoting>
</configuration>

 

IIS文件结构

 ../test

  |---bin

        |-ClassLibrary1.dll

  |---web.config

 

(在此已经可以测试Remoting是否发布成功,在IE 输入http://localhost/Class1.soap?wsdl 可以看xml文件内容)

 

3. 客户端调用

  web应用调用

  在web.config中添加   

    <appSettings>
    <add key="Class1url" value="http://localhost/Class1.soap"/>
   </appSettings>

  调用代码

 

  protected void Button1_Click(object sender, EventArgs e)
        {
  string sdkConnect = ConfigurationSettings.AppSettings["Class1url"];

 ClassLibrary1.Class1 app = (ClassLibrary1.Class1)Activator.GetObject(typeof(ClassLibrary1.Class1), sdkConnect);
 TextBox1.Text = app.add(1,2).ToString();         

    }

 

 控制台调用

  app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key= "ServiceURL" value="http://localhost/Class1.soap"/>
</appSettings>
</configuration>

调用代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting;

namespace Clienttest
{
    class Program
    {
        static void Main(string[] args)
        {
            ClassLibrary1.Class1 app = (ClassLibrary1.Class1)Activator.GetObject(typeof(ClassLibrary1.Class1), System.Configuration.ConfigurationSettings.AppSettings["ServiceURL"]);
            Console.WriteLine(app.add(1, 2));
            Console.ReadLine();

        }
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值