最近的数据库课程要求将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身份验证。

 <authentication mode="Forms"/>

右键单击 Web.config,选择 编辑WCF配置。

右键单击 绑定,新建绑定配置。

选择 webHttpBinding,修改 配置-Name,将 常规-CrossDomainScriptAcessEnabled 设为 True。

         点击 服务-终结点,修改Name, 在 BindingConfiguration处绑定之前的“绑定”。

四、编写WCF服务

转到VS项目中之前创建的 xxx.svc.cs文件中,添加如下两项。

[JavascriptCallbackBehavior(UrlParameterName ="jsoncallback")]

[WebGet (ResponseFormat =WebMessageFormat.Json)]

         在 [OperationContract] 下面编写函数。

 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链接为上图出现的。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><script src="js/jquery-1.8.3.min.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">function fGetWCF() {$.getJSON("http://localhost:8849/dataService.svc/First?jsoncallback=?",function (data) {alert(data);var vData = JSON.stringify(data);alert(vData);});}function fGetWCF2() {$.getJSON("http://localhost:8849/dataService.svc/Second?jsoncallback=?", {name: '福元路小佩奇'},function (data) {alert(data);var vData = JSON.stringify(data);alert(vData);});}</script>
</head><body><input type="button" name="wcf" id="wcf" value="无参数调用WCF测试" onclick="fGetWCF()" /><input type="button" name="wcf" id="wcf" value="有参数调用WCF测试" onclick="fGetWCF2()" />
</body></html>  

点击按钮,均有alert弹窗出现。

运行HTML文件没反应的,在同级目录下新建js文件夹,去网上下载 jquery-1.8.3.min.js放进来。因为有一句 src="js/jquery01.8.3-min.js"

六、WCF连接MySQL

下载 MySQL.Data.DLL(百度),右键项目-添加-引用,将下载的MySQL.Data.DLL加进去。

添加如下引用。

using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;

配置MySQL,并创建连接。

const string sqlconfig = "Server=localhost;Port=3306;Uid=root;Pwd=11111;Database=html1";MySqlConnection connection = new MySqlConnection(sqlconfig);

编写相应函数,完整svc.cs代码如下。

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->JSONpublic 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

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,大功告成!

Ajax+WCF+MySQL实现数据库部署并调用相关推荐

  1. 使用ajax+php+mysql实现数据库定时刷新

    php版本5.5.9,mysql版本5.7. 所以php链接mysql就是使用mysql_connect. 如果遇到了连接时没有成功也没有失败的情况时,就重启mysql,或重启docker(睡一觉就好 ...

  2. html网页如何获取后台数据库的数据(html + ajax + php + mysql)

    目录 html代码 php文件代码 还得在vscode上的php配置以及php环境搭建 基于PhpStudy完成web配置 登录数据库 mysql的table准备 将html文件和php文件项目放入W ...

  3. 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中

    摘要:Kubernetes 很多看起来比较"繁琐"的设计的主要目的,都是希望为开发者提供更多的"可扩展性",给使用者带来更多的"稳定性"和& ...

  4. jq获取内容ajax传递数据库,使用php和jquery ajax从mysql数据库中获取数据

    我想使用php和jquery ajax从mysql数据库中获取数据." process.php"是连接到数据库并获取mysql数据的php文件.当它单独运行时它可以工作,但是当使用 ...

  5. php mysql 检索跳转_jQuery+AJAX+PHP+MySQL数据库开发搜索功能,无跳转无刷新搜索。...

    知识点:ajax提交表单,php查询数据库,php返回json数组,javascript遍历输出json数组 演示: 1.当表单无输入任何关键词的时候,返回**"请输入关键词-"* ...

  6. JDBC对MySQL数据库存储过程的调用

    一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用 ...

  7. mysql数据库存储过程及调用方法

    mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出.6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程.视图.触发 ...

  8. jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用

    1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用户通过指定存储过程的名字并给出参 ...

  9. ajax首页首页显示数据库,ajax显示mysql数据库

    ajax显示mysql数据库 内容精选 换一换 GaussDB(for MySQL)支持的数据库版本,如表1所示.GaussDB(for MySQL)支持内核小版本升级,内核小版本的升级涉及性能提升. ...

最新文章

  1. Redis 笔记(16)— info 指令和命令行工具(查看内存、状态、客户端连接数、监控服务器、扫描大key、采样服务器、执行批量命令等)
  2. 关于一个简易的实时内存监控系统的思维导图
  3. CentOS 安装Nginx
  4. 1065 A+B and C (64bit) (20 分)【难度: 简单 / 思维 高精度】
  5. 一文看懂Python(三)-----字典篇
  6. 深入java虚拟机学习 -- 类的加载机制(续)
  7. ARKit从入门到精通(7)-ARCamera介绍
  8. 游戏网页设计:拟物还是扁平?
  9. java mysql 语句解析器_几种基于Java的SQL解析工具的比较与调用
  10. 高密自智,体小量大,希捷Exos Corvault存储系统为数据洞察赋能
  11. k8s查看pod的yaml文件_K8s-yaml的使用及命令
  12. ElasticSearch的Object数据类型
  13. [UE4]蓝图的颜色
  14. linux tomcat 进程杀掉_Linux下启动停止查看杀死Tomcat进程
  15. py加PHP,浅谈PHP运行Python脚本的方法
  16. matlab 科研绘图
  17. always_comb,always_ff,和always_latch语句
  18. 瞎扯数学分析:微积分
  19. java web开发常见问题_javaWeb开发中常见的问题
  20. android中用名字删除,安卓手机文件名详解~~~让你了解每个文件的作用,放心删除无用文件...

热门文章

  1. 电脑连接不上手机热点-始终显示无法连接到该网络的解决办法(亲测管用)
  2. 清除DNS 缓存记录
  3. 在 Light Trail Adventures 中探索失落已久的复古未来沙漠城市
  4. VSCode查看gltf文件(glTF Tools插件)
  5. 使用reduce实现数组扁平化
  6. 微信气泡主题设置_微信皮肤主题怎么弄 微信设置更换修改气泡和主题教程
  7. VS Code、Atom、​Sublime Text:谁才是真正的编辑器之王?
  8. Unity 1.Roll a Ball
  9. command a expects \ followed by text
  10. 北京的电竞学校的要求有哪些?