练习 配置WCF服务

http://blog.csdn.net/suntanyong88/article/details/8203572

目录(?)[+]

  1. 1OrderTrackWindowsKZT   控制台应用 程序用于调试 wcf服务端 接口问题
  2. 2OrderTrackWindowsService   windows服务可以发布到服务端
  3. 怎么创建 windows 服务 可以参考   链接地址   wcf服务注册windows服务
  4. 3FluentAdoSqlServer   数据源适合wcf服务的那种调用方式跟常用的调用sqlhelp 有很大区别
  5. 4WcfWebApplication   展示 客户端调用
  6. 5其它的 类库 分别 是  接口实现实体
  7. 客户端的web配置

图1

1,OrderTrack.Windows.KZT  : 控制台应用 程序,用于调试 wcf服务端 接口问题,

2,OrderTrack.Windows.Service :  windows服务,可以发布到服务端,

怎么创建 windows 服务 ,可以参考   链接地址  wcf服务注册windows服务

3,FluentAdo.SqlServer   数据源适合wcf服务的那种调用方式,跟常用的调用sqlhelp 有很大区别。

4,WcfWebApplication   展示 客户端调用,

5,其它的 类库 分别 是  接口,实现,实体。

1,展示下 控制台应用程序配置

web.config配置

[html] view plain copy print?

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <configSections>
  4. </configSections>
  5. <appSettings>
  6. <add key="Travel"  value="Data Source=服务器名;Initial Catalog=xxx;User ID=帐号;Password=密码;Asynchronous Processing=True;MultipleActiveResultSets=True"/>
  7. <add key="OrderTrackRouter"  value="Data Source=服务器名;Initial Catalog=数据库名;User ID=帐号;Password=密码"/>
  8. </appSettings>
  9. <connectionStrings>
  10. </connectionStrings>
  11. <system.serviceModel>
  12. <behaviors>
  13. <serviceBehaviors>
  14. <behavior name="Wcf.MyBehaviorConfiguration">
  15. <serviceMetadata httpGetEnabled="false" />
  16. <serviceDebug includeExceptionDetailInFaults="false" />
  17. <dataContractSerializer maxItemsInObjectGraph="2147483647" />
  18. </behavior>
  19. </serviceBehaviors>
  20. </behaviors>
  21. <bindings>
  22. <!-- wcf协议 -->
  23. <netTcpBinding>
  24. <binding name="netTcpBinding_Mybinding"
  25. closeTimeout="00:10:00"
  26. openTimeout="00:10:00"
  27. receiveTimeout="00:10:00"
  28. sendTimeout="00:10:00"
  29. transactionFlow="false"
  30. transferMode="Buffered"
  31. transactionProtocol="OleTransactions"
  32. hostNameComparisonMode="StrongWildcard"
  33. listenBacklog="10"
  34. maxBufferPoolSize="2147483647 "
  35. maxBufferSize="2147483647 "
  36. maxConnections="10"
  37. maxReceivedMessageSize="2147483647 ">
  38. <readerQuotas maxDepth="64" maxStringContentLength="2147483647 " maxArrayLength="2147483647 " maxBytesPerRead="4096" maxNameTableCharCount="16384" />
  39. <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
  40. <security mode="None"></security>
  41. </binding>
  42. </netTcpBinding>
  43. </bindings>
  44. <services>
  45. <!--订单跟踪 -->
  46. <service name="OrderTrack.DAL.OrderTrackRouter_Service">
  47. <endpoint  address="net.tcp://127.0.0.1:6438/OrderTrack.DAL.OrderTrackRouter_Service"
  48. contract="OrderTrack.Interface.OrderTrackRouter_IService"
  49. binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding"  />
  50. </service>
  51. <!-- RTX跟踪 -->
  52. <service name="OrderTrack.DAL.RTXhistoryDAL">
  53. <endpoint  address="net.tcp://127.0.0.1:5789/OrderTrack.DAL.RTXhistoryDAL"
  54. contract="OrderTrack.Interface.IRTXhistoryDAL"
  55. binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding"  />
  56. </service>
  57. </services>
  58. <client>
  59. </system.serviceModel>
  60. </configuration>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="Travel"  value="Data Source=服务器名;Initial Catalog=xxx;User ID=帐号;Password=密码;Asynchronous Processing=True;MultipleActiveResultSets=True"/>
    <add key="OrderTrackRouter"  value="Data Source=服务器名;Initial Catalog=数据库名;User ID=帐号;Password=密码"/>
  </appSettings>
  <connectionStrings>
  </connectionStrings>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Wcf.MyBehaviorConfiguration">
          <serviceMetadata httpGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>

      <!-- wcf协议 -->
      <netTcpBinding>
        <binding name="netTcpBinding_Mybinding"
                   closeTimeout="00:10:00"
                   openTimeout="00:10:00"
                   receiveTimeout="00:10:00"
                   sendTimeout="00:10:00"
                   transactionFlow="false"
                   transferMode="Buffered"
                   transactionProtocol="OleTransactions"
                   hostNameComparisonMode="StrongWildcard"
                   listenBacklog="10"
                   maxBufferPoolSize="2147483647 "
                   maxBufferSize="2147483647 "
                   maxConnections="10"
                   maxReceivedMessageSize="2147483647 ">
          <readerQuotas maxDepth="64" maxStringContentLength="2147483647 " maxArrayLength="2147483647 " maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
          <security mode="None"></security>
        </binding>
      </netTcpBinding>
    </bindings>

    <services>
      <!--订单跟踪 -->
      <service name="OrderTrack.DAL.OrderTrackRouter_Service">
        <endpoint  address="net.tcp://127.0.0.1:6438/OrderTrack.DAL.OrderTrackRouter_Service"
                   contract="OrderTrack.Interface.OrderTrackRouter_IService"

                    binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding"  />
      </service>

      <!-- RTX跟踪 -->
      <service name="OrderTrack.DAL.RTXhistoryDAL">
        <endpoint  address="net.tcp://127.0.0.1:5789/OrderTrack.DAL.RTXhistoryDAL"
                  contract="OrderTrack.Interface.IRTXhistoryDAL"
                    binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding"  />
      </service>
    </services>

    <client>

  </system.serviceModel>
</configuration>

注意事项:  1,wcf协议可以共用一个

2,tcp服务端口部署到服务器,端口号不能重复重复之后,windows服务启动不了,会产生错误日志。出现服务启用不了,

                    修改 端口号,除了这个原因,还有别的原因也会导致服务启动不了。可以到事件查看器 查看对应错误,如:图2

  右键点击错误日志属性查看错误

[csharp] view plain copy print?

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ServiceModel;
  6. using OrderTrack.DAL;
  7. /*
  8. 创建人 谈勇 2012-11-7
  9. */
  10. namespace OrderTrack.Windows.Service.WCFService
  11. {
  12. internal class RtxStartService
  13. {
  14. /// <summary>
  15. /// 创建服务主机对象
  16. /// </summary>
  17. internal static ServiceHost serviceHost = null;
  18. /// <summary>
  19. /// 启动服务函数
  20. /// </summary>
  21. internal static void StartService()
  22. {
  23. if (serviceHost != null)
  24. {
  25. serviceHost.Close();
  26. }
  27. serviceHost = new ServiceHost(typeof(RTXhistoryDAL));
  28. serviceHost.Open();
  29. }
  30. /// <summary>
  31. /// 停止服务
  32. /// </summary>
  33. internal static void StopService()
  34. {
  35. if (serviceHost != null)
  36. {
  37. serviceHost.Close();
  38. serviceHost = null;
  39. }
  40. }
  41. }
  42. }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using OrderTrack.DAL;

/*
    创建人 谈勇 2012-11-7
 */
namespace OrderTrack.Windows.Service.WCFService
{
    internal class RtxStartService
    {
        /// <summary>
        /// 创建服务主机对象
        /// </summary>
        internal static ServiceHost serviceHost = null;

        /// <summary>
        /// 启动服务函数
        /// </summary>
        internal static void StartService()
        {
            if (serviceHost != null)
            {
                serviceHost.Close();
            }
            serviceHost = new ServiceHost(typeof(RTXhistoryDAL));
            serviceHost.Open();
        }

        /// <summary>
        /// 停止服务
        /// </summary>
        internal static void StopService()
        {
            if (serviceHost != null)
            {
                serviceHost.Close();
                serviceHost = null;
            }
        }
    }
}

[csharp] view plain copy print?

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Diagnostics;
  6. using System.Linq;
  7. using System.ServiceProcess;
  8. using System.Text;
  9. using OrderTrack.Windows.KZT.WCFService;
  10. namespace OrderTrack.Windows.KZT
  11. {
  12. partial class WindowsService : ServiceBase
  13. {
  14. /// <summary>
  15. /// 服务名称
  16. /// </summary>
  17. internal const string SERVICE_NAME = "WCFServiceHost";
  18. protected static void WCFServiceHost_Start()
  19. {
  20. //订单跟踪服务启动
  21. OrderTrackRouter_WCFService.StartService();
  22. //rtx 服务启动
  23. RtxStartService.StartService();
  24. }
  25. protected static void WCFServiceHost_Stop()
  26. {
  27. //调用服务停止函数
  28. // WhetherStartService.StopService();
  29. //rtx 服务关闭
  30. //RtxStartService.StopService();
  31. }
  32. public WindowsService()
  33. {
  34. //InitializeComponent();
  35. ServiceName = SERVICE_NAME;
  36. }
  37. protected override void OnStart(string[] args)
  38. {
  39. // TODO: 在此处添加代码以启动服务。
  40. WCFServiceHost_Start();
  41. }
  42. protected override void OnStop()
  43. {
  44. // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
  45. WCFServiceHost_Stop();
  46. }
  47. private static void RunAsConsole()
  48. {
  49. ///添加控制台TITLE
  50. Console.Title = "我的地盘听我的";
  51. WCFServiceHost_Start();
  52. Console.ReadKey();  //不做控制台程序可以 修改成 Consolse.Read();
  53. }
  54. private static void RunAsService()
  55. {
  56. //Run(new WindowsService());
  57. ServiceBase[] ServicesToRun;
  58. ServicesToRun = new ServiceBase[]
  59. {
  60. new WindowsService()
  61. };
  62. ServiceBase.Run(ServicesToRun);
  63. }
  64. public static void Main()
  65. {
  66. if (Environment.UserInteractive)
  67. {
  68. RunAsConsole();
  69. }
  70. else
  71. {
  72. RunAsService();
  73. }
  74. }
  75. }
  76. }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using OrderTrack.Windows.KZT.WCFService;

namespace OrderTrack.Windows.KZT
{
    partial class WindowsService : ServiceBase
    {
        /// <summary>
        /// 服务名称
        /// </summary>
        internal const string SERVICE_NAME = "WCFServiceHost";

        protected static void WCFServiceHost_Start()
        {
            //订单跟踪服务启动
            OrderTrackRouter_WCFService.StartService();
            //rtx 服务启动
            RtxStartService.StartService();
        }

        protected static void WCFServiceHost_Stop()
        {
            //调用服务停止函数
           // WhetherStartService.StopService();
            //rtx 服务关闭
            //RtxStartService.StopService();

        }

        public WindowsService()
        {
            //InitializeComponent();

            ServiceName = SERVICE_NAME;
        }

        protected override void OnStart(string[] args)
        {
            // TODO: 在此处添加代码以启动服务。
            WCFServiceHost_Start();
        }

        protected override void OnStop()
        {
            // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
            WCFServiceHost_Stop();
        }

        private static void RunAsConsole()
        {
            ///添加控制台TITLE
            Console.Title = "我的地盘听我的";
            WCFServiceHost_Start();
            Console.ReadKey();  //不做控制台程序可以 修改成 Consolse.Read();
        }

        private static void RunAsService()
        {
            //Run(new WindowsService());

            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
			{
				new WindowsService()
			};
            ServiceBase.Run(ServicesToRun);
        }

        public static void Main()
        {
            if (Environment.UserInteractive)
            {
                RunAsConsole();
            }
            else
            {
                RunAsService();
            }

        }
    }
}

图3, 服务配置

图4 ,wcf接口的实现

<!-- RTX跟踪 -->       <service name="OrderTrack.DAL.RTXhistoryDAL">         <endpoint  address="net.tcp://127.0.0.1:5789/OrderTrack.DAL.RTXhistoryDAL"                   contract="OrderTrack.Interface.IRTXhistoryDAL"                     binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding"  />       </service>

  注意看图 4 和 协议的配置 是有关联的。

总结一下,wcf配置一定要细心,监听和协议有一点不一样,那个客户端 调用 服务器 接口 是 ping 不通的。

5. 展示客户端调用

要下载个 wcf插件

ACorns.WCF.DynamicClientProxy   文件  可以用一个专门的类型去封装 那个 wcf插件文件包

客户端引用 只要拿 那个 dll文件就行。

总结:编写wcf接口服务 调用 设计的越简单越好,这样别人拿到你的接口 ,引用几个 dll文件。就能实现你接口的方法 完成对应功能。

客户端的web配置

[html] view plain copy print?

  1. <?xml version="1.0"?>
  2. <!--
  3. 有关如何配置 ASP.NET 应用程序的详细信息,请访问
  4. http://go.microsoft.com/fwlink/?LinkId=169433
  5. -->
  6. <configuration>
  7. <connectionStrings />
  8. <system.web>
  9. <compilation debug="true" targetFramework="4.0" />
  10. <authentication mode="Forms">
  11. <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
  12. </authentication>
  13. <membership>
  14. <providers>
  15. <clear/>
  16. <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
  17. enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
  18. maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
  19. applicationName="/" />
  20. </providers>
  21. </membership>
  22. <profile>
  23. <providers>
  24. <clear/>
  25. <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
  26. </providers>
  27. </profile>
  28. <roleManager enabled="false">
  29. <providers>
  30. <clear/>
  31. <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
  32. <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  33. </providers>
  34. </roleManager>
  35. </system.web>
  36. <system.webServer>
  37. <modules runAllManagedModulesForAllRequests="true"/>
  38. </system.webServer>
  39. <!-- wcf 配置 begin-->
  40. <system.serviceModel>
  41. <bindings>
  42. <netTcpBinding>
  43. <binding name="netTcpBinding_Mybinding"
  44. closeTimeout="00:10:00"
  45. openTimeout="00:10:00"
  46. receiveTimeout="00:10:00"
  47. sendTimeout="00:10:00"
  48. transactionFlow="false"
  49. transferMode="Buffered"
  50. transactionProtocol="OleTransactions"
  51. hostNameComparisonMode="StrongWildcard"
  52. listenBacklog="10"
  53. maxBufferPoolSize="2147483647 "
  54. maxBufferSize="2147483647 "
  55. maxConnections="10"
  56. maxReceivedMessageSize="2147483647 ">
  57. <readerQuotas maxDepth="64" maxStringContentLength="2147483647 " maxArrayLength="2147483647 " maxBytesPerRead="4096" maxNameTableCharCount="16384" />
  58. <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
  59. <security mode="None"></security>
  60. </binding>
  61. </netTcpBinding>
  62. </bindings>
  63. <client>
  64. <!-- 订单跟踪 -->
  65. <endpoint  address="net.tcp://127.0.0.1:6438/OrderTrack.DAL.OrderTrackRouter_Service" contract="OrderTrack.Interface.OrderTrackRouter_IService"
  66. binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding" name="orderTrack"/>
  67. <!-- RTX跟踪 -->
  68. <endpoint  address="net.tcp://127.0.0.1:5789/OrderTrack.DAL.RTXhistoryDAL" contract="OrderTrack.Interface.IRTXhistoryDAL"
  69. binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding" name="rtxTrack"/>
  70. </client>
  71. </system.serviceModel>
  72. <!-- wcf 配置  end-->
  73. </configuration>
<?xml version="1.0"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <connectionStrings />

  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <!-- wcf 配置 begin-->
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="netTcpBinding_Mybinding"
                     closeTimeout="00:10:00"
                     openTimeout="00:10:00"
                     receiveTimeout="00:10:00"
                     sendTimeout="00:10:00"
                     transactionFlow="false"
                     transferMode="Buffered"
                     transactionProtocol="OleTransactions"
                     hostNameComparisonMode="StrongWildcard"
                     listenBacklog="10"
                     maxBufferPoolSize="2147483647 "
                     maxBufferSize="2147483647 "
                     maxConnections="10"
                     maxReceivedMessageSize="2147483647 ">
          <readerQuotas maxDepth="64" maxStringContentLength="2147483647 " maxArrayLength="2147483647 " maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
          <security mode="None"></security>
        </binding>

      </netTcpBinding>
    </bindings>

    <client>
      <!-- 订单跟踪 -->
      <endpoint  address="net.tcp://127.0.0.1:6438/OrderTrack.DAL.OrderTrackRouter_Service" contract="OrderTrack.Interface.OrderTrackRouter_IService"
                 binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding" name="orderTrack"/>
      <!-- RTX跟踪 -->
      <endpoint  address="net.tcp://127.0.0.1:5789/OrderTrack.DAL.RTXhistoryDAL" contract="OrderTrack.Interface.IRTXhistoryDAL"
           binding="netTcpBinding" bindingConfiguration="netTcpBinding_Mybinding" name="rtxTrack"/>
    </client>
  </system.serviceModel>

  <!-- wcf 配置  end-->
</configuration>

客户端后台调用 展示 追加RTX记录方法

[csharp] view plain copy print?

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using Uzai.OrderTrack.Interface;
  8. using ACorns.WCF.DynamicClientProxy;
  9. using OrderTrack.DataEntities;
  10. namespace WcfWebApplication
  11. {
  12. public partial class RTXTrackTest : System.Web.UI.Page
  13. {
  14. protected void Page_Load(object sender, EventArgs e)
  15. {
  16. RTXWcfNetTcp();
  17. }
  18. public void RTXWcfNetTcp()
  19. {
  20. IRTXhistoryDAL iwt = WCFClientProxy<IRTXhistoryDAL>.GetReusableFaultUnwrappingInstance("rtxTrack");
  21. RTXhistory model = new RTXhistory();
  22. model.orderType = TrackOrderEnum.MeteradJustable;
  23. model.objorderModel.ordercode = "N23151234";
  24. model.objorderModel.dateofDeparture = DateTime.Now;
  25. model.objorderModel.Person = 2;
  26. model.objorderModel.Child = 1;
  27. model.objorderModel.productId = 4788;
  28. model.objorderModel.productName = "菲律宾一日游";
  29. model.objorderModel.prodcutPrice = 4888.88m;
  30. model.objorderModel.OPAdminID = "581";
  31. model.objorderModel.OPAdmin = "tanyong";
  32. model.objorderModel.JDAdminID = "581";
  33. model.objorderModel.JDAdmin = "tanyong";
  34. string strResult = iwt.addRtxHostory(model);
  35. Response.Write(strResult);
  36. }
  37. }
  38. }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Uzai.OrderTrack.Interface;
using ACorns.WCF.DynamicClientProxy;
using OrderTrack.DataEntities;

namespace WcfWebApplication
{
    public partial class RTXTrackTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            RTXWcfNetTcp();
        }

        public void RTXWcfNetTcp()
        {
            IRTXhistoryDAL iwt = WCFClientProxy<IRTXhistoryDAL>.GetReusableFaultUnwrappingInstance("rtxTrack");

            RTXhistory model = new RTXhistory();

            model.orderType = TrackOrderEnum.MeteradJustable;

            model.objorderModel.ordercode = "N23151234";
            model.objorderModel.dateofDeparture = DateTime.Now;

            model.objorderModel.Person = 2;
            model.objorderModel.Child = 1;

            model.objorderModel.productId = 4788;
            model.objorderModel.productName = "菲律宾一日游";
            model.objorderModel.prodcutPrice = 4888.88m;
            model.objorderModel.OPAdminID = "581";
            model.objorderModel.OPAdmin = "tanyong";
            model.objorderModel.JDAdminID = "581";
            model.objorderModel.JDAdmin = "tanyong";

            string strResult = iwt.addRtxHostory(model);

            Response.Write(strResult);

        }

    }
}

//这个是rtxTrack是webConfig 协议的name

时间: 2024-10-24 11:45:16

练习 配置WCF服务的相关文章

IIS配置WCF服务

在高校平台中,各系统的服务端通过WCF向外提供接口,如果自己用这些接口大可以用VS发布,在客户端调用这个本地接口就可以了.但若要给别人用则得用IIS进行IP地址和端口号发布了. 一.VS发布WCF 1.对于VS本地发布服务的这种,只要程序没有什么问题,一般都可以发布成功. 2.把发布成功的这个服务地址放在客户端的配置文件中,客户端就可以调用服务端的资源了 二.IIS发布WCF 1.(1)启用IIS IIS发布WCF,需要提前启用IIS的一些功能,如下: (2).添加要发布的网站 (3)添加成功后

IIS8.5 的环境下添加配置WCF服务!!!!!

添加步骤: 1.打开iis8.5,先部署wcf服务. 2.首先添加MIME类型 扩展名:".svc" MIME类型:"application/octet-stream" 3.添加 处理程序映射 请求路径:*.svc 类型:System.ServiceModel.Activation.HttpHandler 名称:svc-Integrated 4.重新启动IIS 5.如果还是出现404的情况,需要添加 HTTP激活.

在配置WCF服务的时候出现的错误总结

1.由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 我是通过安装图中的FramWork3.5.1搞定的. 网上的其他参考: http://blog.csdn.net/jumtre/article/details/38398355 http://www.cnblogs.com/qqflying/p/3723905.html 2.处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Ma

WCF服务二:创建一个简单的WCF服务程序

在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WCFSolution". 2.解决方案右键->添加->类库项目,类库名称为CalculateWcfService. 3.创建服务契约 WCF采用基于契约的交互方式实现了服务的自制.服务契约:是相关操作的集合.契约就是双方或多方就某个关注点达成的一种共识,是一方向另一方的一种承诺.签署了某个

记录:Web无引用无配置方式动态调用WCF服务

这几年一直用WebApi较多,最近项目中有个需求比较适合使用WCF,以前也用过JQuery直接调用Wcf的,但是说实话真的忘了… 所以这次解决完还是花几分钟记录一下 WCF服务端:宿主在现有Win服务中,在服务启动时添加代码 ,服务代码就不用写了,接口和实现按照契约实现即可 private ServiceHost serviceHost = null; //服务宿主 //启动WCF服务 if (serviceHost != null) { serviceHost.Close(); } servi

WCF配置与服务寄宿

1.项目框架如下: 2.WCF服务项目 其中WCFService中存放服务契约及其实现,需添加命名空间:System.ServiceModel 3.服务寄宿 WCFHost是一个控制台程序,用于寄宿WCF服务,需添加命名空间:System.ServiceModel和引用WCFService项目 其中需要编写的代码如下: 若直接在配置文件里配置终结点信息,则对于的代码如下: 配置文件信息如下: 4.客户端 需添加命名空间:System.ServiceModel和引用WCFService项目 客户端

编写WCF服务时右击配置文件无“Edit WCF Configuration”(编辑 WCF 配置)远程的解决办法

原文:编写WCF服务时右击配置文件无“Edit WCF Configuration”远程的解决办法 今天在看<WCF揭秘>书中看到作者提出可以在一个WCF Host应用程序的App.Config文件上右击, 通过弹出的" Edit WCF Configuration”(编辑WCF配置)选项来利用GUI界面编辑WCF的配置信息. 但是我在尝试的时候并没有找到这个右键菜单,开始还以为作者弄错了,但又尝试了一会后便发现了窍门. 右键App.Config文件默认是没有" Edit

WCF服务配置编辑器使用

学习wcf,特别是初学者,配置文件很难搞懂,有点复杂,自己手动配置哪有这么多精力啊,这不是吃的太饱了吗,所以学会使用配置编辑器是必须的,下面是学习的流程图. 打开工具的wcf服务配置编辑器,点击文件=>打开=>配置文件(找到你项目所在的app.config配置文件),服务是空的,在点击新建服务,浏览找到dll文件单击文件加入服务类型 点击下一步,在点击下一步,默认选择http在下一步,下一步,之后就是下面的页面了,填写好终结点的地址下一步 完成创建之后便是配置好所谓的ABC了,照着下面的配置就

Wcf:可配置的服务调用方式

添加wcf服务引用时,vs.net本来就会帮我们在app.config/web.config里生成各种配置,这没啥好研究的,但本文谈到的配置并不是这个.先看下面的图: 通常,如果采用.NET的WCF技术来架构SOA风格的应用,我们会把项目做一些基本的分层,如上图: 01. contract层:通常定义服务的接口(即服务契约ServiceContract,指明该服务提供了哪些方法可供外部调用).以及接口方法中传输的Model定义(即:数据契约DataContract,指明方法中的对象参数的Clas