在WebService中使用Microsoft.Practices.EnterpriseLibrary.Data配置数据库

1、 新建WebApplication1项目

1.1 新建—Web—ASP.NET Empty Web Application--WebApplication1

1.2 添加一个WebForm1

2、 新建webService项目

2.1 新建—Web—ASP.NET Empty Web Application—WebApplicationService

2.2 选择WebApplicationService—右键—Add—WebService (ASMX)-- WebServiceGSS.asmx

2.3 在项目WebApplicationService中添加引用

Microsoft.Practices.EnterpriseLibrary.Data.dll(版本4.1)

Microsoft.Practices.EnterpriseLibrary.Common.dll(版本4.1)

注意,如果报错,Microsoft.Practices.EnterpriseLibrary.Common”類型不能實例化之類的,

可能解決方法:Microsoft.Practices.ObjectBuilder.dll加到References中就哦啦~~~

写服务中的方法,

文件WebServiceGSS.asmx代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebApplicationService
{

    [WebService(Namespace = "http://Mercer.GlobalSwitchingService/2008/09", Name = "GlobalSwitchingService")]
    [System.Web.Services.WebServiceBindingAttribute(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true, Name = "GlobalSwitchingService")]
    [ToolboxItem(false)]
    public class WebServiceGSS : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod(Description = "Returns a list of ReportServerURL one is for source another is for destination")]
        public DataSet GetReportServerURL(Guid sourceClientID, Guid destinationClientID)
        {
            return GSSDML.GetReportServerURL(sourceClientID, destinationClientID);
        }

        [WebMethod(Description = "Returns a list of Roles")]
        public DataSet GetReportRole()
        {
            return GSSDML.GetRole();
        }
    }
}

文件GSSDML.cs代码(和WebServiceGSS.asmx分开,条理清楚些)

using Microsoft.Practices.EnterpriseLibrary.Data;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace WebApplicationService
{
    public class GSSDML
    {
        private const string DB_GSS = "DB_GSS";
        private const string DB_FAS = "DB_FAS";
        public static DataSet GetReportServerURL(Guid sourceClientID, Guid destinationClientID)
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            DataSet ds = new DataSet();
            try
            {
                using (DbConnection con = DatabaseFactory.CreateDatabase(DB_GSS).CreateConnection())
                {
                    adapter = new SqlDataAdapter();
                    adapter.SelectCommand = new SqlCommand();
                    adapter.SelectCommand.Connection = con as SqlConnection;
                    adapter.SelectCommand.CommandText = "getStudentTable";
                    adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                    //adapter.SelectCommand.Parameters.Add(new SqlParameter("@SourceClientID", sourceClientID));
                    //adapter.SelectCommand.Parameters.Add(new SqlParameter("@DestinationClientID", destinationClientID));
                    con.Open();
                    adapter.Fill(ds);
                }
            }
            catch
            {

            }
            return ds;
        }

        public static DataSet GetRole()
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            DataSet ds = new DataSet();
            try
            {
                using (DbConnection con = DatabaseFactory.CreateDatabase(DB_FAS).CreateConnection())
                {
                    adapter = new SqlDataAdapter();
                    adapter.SelectCommand = new SqlCommand();
                    adapter.SelectCommand.Connection = con as SqlConnection;
                    adapter.SelectCommand.CommandText = " SELECT * from [dbo].[Role]";
                    adapter.SelectCommand.CommandType = CommandType.Text;
                    con.Open();
                    adapter.Fill(ds);
                }
            }
            catch
            {

            }
            return ds;
        }
    }
}

服务中的Config文件

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>

  <connectionStrings>
    <add name="DB_GSS" connectionString="Database=Test; Server=.; User ID=sa;Password=123;Connection Timeout=90;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient"/>
    <add name="DB_FAS" connectionString="Database=fas; Server=.; User ID=sa;Password=123;Connection Timeout=90;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

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

</configuration>

3、添加WebService引用

4、添加完成后会出现一个Settings.settings和Web References

5、在WebForm1.aspx.cs中写测试代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            web();
        }

        public void web()
        {
            ServiceWeb.GlobalSwitchingService serviceWeb = new ServiceWeb.GlobalSwitchingService();
            //serviceWeb.Url = "http://localhost:25003/WebServiceGSS.asmx";
            //在setting中配置url
            //serviceWeb.Url = Properties.Settings.Default.GlobalSwitchingService;
            //在config中配置url
            //serviceWeb.Url = System.Configuration.ConfigurationManager.AppSettings["GlobalSwitchingService"];
            string s = serviceWeb.HelloWorld();

            Guid id = new Guid();
            DataSet ds = serviceWeb.GetReportServerURL(id, id);

            DataSet ds2 = serviceWeb.GetReportRole();

        }
    }
}

6、如果想自定义服务的端口号,可以在属性的web页设置

时间: 2024-10-18 01:06:02

在WebService中使用Microsoft.Practices.EnterpriseLibrary.Data配置数据库的相关文章

使用Microsoft.Practices.EnterpriseLibrary.Data调用存数过程Output参数注意事项

最近拿了一个开源的源码看了下,在调试的过程中发现调用存数过程的output参数的时候一直出错,现在将问题记录下来. 问题描述: 1. 使用Microsoft.Practices.EnterpriseLibrary.Data.dll调用数据库 2. 存数过程如下: USE [Survey] GO /****** Object: StoredProcedure [dbo].[vts_spQuestionCopy] Script Date: 08/03/2014 19:11:10 ******/ SE

Microsoft.Practices.EnterpriseLibrary

项目中使用了Microsoft.Practices.EnterpriseLibrary这个东西,根据名字猜测和微软有关系(可以翻译为:微软实践企业库). 看到了引入了两个命名空间: using Microsoft.Practices.EnterpriseLibrary.Data; using Microsoft.Practices.EnterpriseLibrary.Data.Sql; 在项目引用中发现了三个相关的dll文件: Microsoft.Practices.EnterpriseLibr

Could not load file or assembly &#39;Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, ...

使用oracle数据库一个多月依赖这问题一直都得不到解决,最近任务不是很忙了,所以决定把这问题解决掉.写一篇文章做记录. 以上错误主要是net程序oracle数据库使用了Microsoft Enterprise Library 5.0 类库访问oracle数据库,其具有优秀的访问不通数据库的能力.使用方法不对也同样出现错误.解决办法是下载http://www.microsoft.com/en-us/download/confirmation.aspx?id=15104最新的类库并安装,安装后到安

Microsoft.Practices.EnterpriseLibrary企业库问题

System.Configuration.ConfigurationErrorsException: Invalid TraceListenerData type in configuration 'listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.Enterpr

idea中mybatis generator自动生成代码配置 数据库是sqlserver

好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generatorConfig.xml and jdbc.properties都要放在resource根目录下 具体generatorConfig.xml内容如下: <?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE

第九回 Microsoft.Practices.Unity.Interception实现基于数据集的缓存(针对六,七,八讲的具体概念和配置的解说)

返回目录 概念 Microsoft.Practices.Unity.Interception是一个拦截器,它隶属于Microsoft.Practices.Unity组成之中,主要完成AOP的功能,而实现AOP方法拦截(页向切面)的基础就是IoC,我们需要配置相关接口或者类型的IoC方式,然后在生产对象时,使用Unity的方法进行动态生产对象,这时,你的Interception拦截器也会起作用! 相关技术 IoC: 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的

利用Microsoft.Practices.Unity的拦截技术,实现.NET中的AOP

1.记住这个单词的意思:Interception(拦截) 2.首先说一下原理和背景 原理:所谓的AOP就是面向切面编程,这里不多说,百度搜索. 目的:个人认为是为了解耦,部分代码跟业务代码分离,业务代码里面不掺杂其它功能,比如:记录异常.记录操作日志. 背景:项目基本功能已完成,产品要求记录用户的操作日志,新增的时候记录某人在某时做了某事(包括详细的信息,比如新增了哪些字段或者修改了哪些字段).于是着手在业务代码里写了大量的关于记录操作日志的代码,怎么看怎么别扭,像是被XX了的感觉. 3.考虑解

VS - Microsoft.Practices.Unity

PM>  Install-Package Unity Web.config <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration" /> </configSections> <

使用Microsoft.Practices.Unity 依赖注入

Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入(Constructor Injection).属性注入(Property Injection),以及方法调用注入(Method Call Injection). 假设我们有下面的场景代码,在代码里面有一个很简单的customer对象,customer 对象有个save 方法, 这个方法通过调用ICusto