翼度科技»论坛 编程开发 .net 查看内容

Ajax+WCF+MySQL实现数据库部署并调用

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
​         最近的数据库课程要求将MySQL数据库部署在服务器上,参考了大佬们的博客后,总结一下。
        先放上参考的大佬们的博客。
        【原创经验分享】JQuery(Ajax)调用WCF服务 - 南宫萧尘 - 博客园 (cnblogs.com)
          WinForm+WCF+mysql+http实现简单的用户登录注册_小瞄喵的博客-CSDN博客
         未能加载文件或程序集“Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=……” - 河耶悦子 - 博客园 (cnblogs.com)        
        一、VS2019下载WCF组件
        进入到 C:\Program Files (x86)\Microsoft Visual Studio\Installer 文件夹下,打开 vs_installer.exe。修改VS2019,点击单个组件,搜索WCF并下载安装。
​编辑
​编辑
 
        二、 新建WCF项目
        新建VS项目,选择WCF服务应用程序。将IService.cs、Service.svc删除(如果你不需要的话)。
​编辑
        添加新建项,选择WCF服务(支持Ajax)。
​编辑
         三、配置Web.config参数
        打开Web.config,配置Forms身份验证。
复制代码
        
​编辑
         右键单击 Web.config,选择 编辑WCF配置。
​编辑
         右键单击 绑定,新建绑定配置。
​编辑
        选择 webHttpBinding,修改 配置-Name,将 常规-CrossDomainScriptAcessEnabled 设为 True。
        
​编辑
​编辑         点击 服务-终结点,修改Name, 在 BindingConfiguration处绑定之前的“绑定”。
​编辑
        四、编写WCF服务
        转到VS项目中之前创建的 xxx.svc.cs文件中,添加如下两项。
  1. [JavascriptCallbackBehavior(UrlParameterName ="jsoncallback")]
复制代码
​编辑
  1. [WebGet (ResponseFormat =WebMessageFormat.Json)]
复制代码
​编辑         在 [OperationContract] 下面编写函数。
  1. public string First()        {            return "OK";        }        [OperationContract]        [WebInvoke(Method ="GET",BodyStyle =WebMessageBodyStyle.WrappedRequest,            ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]        /*有参数*/        public string Second(string name)        {            string msg = string.Format("{0}success",name);            return msg;        }
复制代码
         现在,保存项目,右键 svc文件,在浏览器中查看。
​编辑
        出现如下网页,说明前面没啥问题。
​编辑         五、创建HTML,调用服务
        新建一个HTML文件,其中,getJSON的URL链接为上图出现的。
  1.                           
复制代码
         点击按钮,均有alert弹窗出现。
​编辑
       运行HTML文件没反应的,在同级目录下新建js文件夹,去网上下载 jquery-1.8.3.min.js放进来。因为有一句 src="js/jquery01.8.3-min.js"
        六、WCF连接MySQL
        下载 MySQL.Data.DLL(百度),右键项目-添加-引用,将下载的MySQL.Data.DLL加进去。
        添加如下引用。
  1. using MySql.Data;using MySql.Data.MySqlClient;using System.Data;
复制代码
         配置MySQL,并创建连接。
  1. ​const string sqlconfig = "Server=localhost;Port=3306;Uid=root;Pwd=11111;Database=html1";            MySqlConnection connection = new MySqlConnection(sqlconfig);
复制代码
         编写相应函数,完整svc.cs代码如下。
  1. using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Activation;using System.ServiceModel.Web;using System.Text;using MySql.Data;using MySql.Data.MySqlClient;using System.Data;namespace databaseExport{    [ServiceContract(Namespace = "")]    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]    [JavascriptCallbackBehavior(UrlParameterName ="jsoncallback")]    public class dataService    {        // 格式转换:DataSet->JSON        public string DataTableToJSON(DataTable dt)        {            StringBuilder jsonBuilder = new StringBuilder();            jsonBuilder.Append("{"Name":"" + dt.TableName + "","Rows");            jsonBuilder.Append("":[");            for (int i = 0; i < dt.Rows.Count; i++)            {                jsonBuilder.Append("{");                for (int j = 0; j < dt.Columns.Count; j++)                {                    jsonBuilder.Append(""");                    jsonBuilder.Append(dt.Columns[j].ColumnName);                    jsonBuilder.Append("":"");                    jsonBuilder.Append(dt.Rows[i][j].ToString().Replace(""", "\\""));                    jsonBuilder.Append("",");                }                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);                jsonBuilder.Append("},");            }            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);            jsonBuilder.Append("]");            jsonBuilder.Append("}");            return jsonBuilder.ToString();        }        public string DataSetToJSON(DataSet ds)        {            StringBuilder json = new StringBuilder();            json.Append("{"Tables":");            json.Append("[");            foreach (System.Data.DataTable dt in ds.Tables)            {                json.Append(DataTableToJSON(dt));                json.Append(",");            }            json.Remove(json.Length - 1, 1);            json.Append("]");            json.Append("}");            return json.ToString();        }        // 在此处添加更多操作并使用 [OperationContract] 标记它们        [OperationContract]        [WebGet (ResponseFormat =WebMessageFormat.Json)]        /*无参数*/        public string First()        {            const string sqlconfig = "Server=localhost;Port=3306;Uid=root;Pwd=111111;Database=html1";            MySqlConnection connection = new MySqlConnection(sqlconfig);            connection.Open();            string sql = "SELECT * FROM test1";            MySqlDataAdapter adapter = new MySqlDataAdapter(sql, connection);            DataSet ds = new DataSet();            adapter.Fill(ds);            connection.Close();            return DataSetToJSON(ds);        }        [OperationContract]        [WebInvoke(Method ="GET",BodyStyle =WebMessageBodyStyle.WrappedRequest,            ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]        /*有参数*/        public string Second(string name)        {            string msg = string.Format("{0}success",name);            return msg;        }    }}
复制代码
 
         点击 工具-NuGet包管理器-程序包管理器控制台,运行如下命令,下载Renci.Ssh.NET.dll
  1. NuGet\Install-Package SSH.NET -Version 2016.1.0
复制代码
​编辑
         跟前面一样,在浏览器中跑一下WCF服务,打开之前的HTML,点击 无参数调用WCF测试 ,出现如下内容,说明已经读取到数据库中内容。
​编辑
         七、部署IIS
        打开控制面板-程序-启用或关闭Windows功能,勾选并确定。
​编辑
 
 
​编辑
         进入VS,右键项目,点击发布。选择方法为:文件系统,选择喜欢的目录,设置好后发布,如下图(该图引自WinForm+WCF+mysql+http实现简单的用户登录注册_小瞄喵的博客-CSDN博客
​编辑
 目录下会出现如下文件夹。
​编辑
         点击 控制面板-系统和安全-管理工具,点击第一个 IIS。
​编辑
         右键单击 网站,选择添加网站,确定网站名称,物理路径选择之前发布的目录。
​编辑
         点击 连接为,选择 特定用户,输入你的电脑名称和登录密码。
​编辑
        如果出现如下情况,检查密码是否错误。如果密码没问题,给电脑新建一个用户,用新建的用户和密码连接。
​编辑
        如果连接成功,点击测试设置,应该出现下图。
​编辑
         选择IP地址和端口号,点击确定即可。浏览创建的网站,如下图。
​编辑
         最后,将HTML文件中的URL地址改为该地址。如图。
​编辑
 
        OK,大功告成!

来源:https://www.cnblogs.com/Peggy114514/archive/2023/01/05/17028511.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具