Ajax+WCF+MySQL实现数据库部署并调用
最近的数据库课程要求将MySQL数据库部署在服务器上,参考了大佬们的博客后,总结一下。
先放上参考的大佬们的博客。
【原创经验分享】JQuery(Ajax)调用WCF服务 - 南宫萧尘 - 博客园 (cnblogs.com)
WinForm+WCF+mysql+http实现简单的用户登录注册_小瞄喵的博客-CSDN博客
一、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->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
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实现数据库部署并调用的更多相关文章
- 使用ajax+php+mysql实现数据库定时刷新
php版本5.5.9,mysql版本5.7. 所以php链接mysql就是使用mysql_connect. 如果遇到了连接时没有成功也没有失败的情况时,就重启mysql,或重启docker(睡一觉就好 ...
- VS2010中使用Jquery调用Wcf服务读取数据库记录
VS2010中使用Jquery调用Wcf服务读取数据库记录 开发环境:Window Servere 2008 +SQL SERVE 2008 R2+ IIS7 +VS2010+Jquery1.3.2 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- Mysql主数据库+备份数据库部署教程
转:http://www.111cn.net/database/mysql/76450.htm 本文我们来讲讲Mysql主备如何部署,这里说的主是指Mysql主数据库,备是从数据库,备可以是多个,也可 ...
- PHP、jQuery、AJAX和MySQL 数据库实例
index.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- JDBC对MySQL数据库存储过程的调用
一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用 ...
- 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
[点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...
- AJAX 与 MySQL
AJAX 与 MySQL AJAX 可用来与数据库进行交互式通信. AJAX 数据库实例 下面的实例将演示网页如何通过 AJAX 从数据库读取信息: 实例 Select a person: P ...
- 使用vs2010创建、发布、部署、调用 WebService
原文地址:使用vs2010创建.发布.部署.调用 WebService作者:吴超 一 使用vs2010创建 WebService 1 打开VS2010,菜单 文件->新建->项目2 ...
- MySQL/Oracle数据库优化总结
MySQL数据库优化的八种方式 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能 ...
随机推荐
- window安装MySQL 5.5教程
window安装MySQL 5.5教程 1.官网下载MySQL 5.5 下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads 2. ...
- ansible使用临时命令通过模块来执行任务
使用临时命令通过模块来执行任务 一.查看系统上安装的所有模块 ansible-doc -l 查看ping模块帮助文档 ansible-doc ping 1.ansible模块 文件模块: copy:将 ...
- Windows版CheatSheet——一键显示当前程序快捷键列表
Windows系统上的各种软件有太多的快捷键,想要记住是几乎不可能的,推荐一个一键显示当前软件快捷键的软件,在使用其他程序的时候,只要按下Ctrl+`就可以理解弹出该软件的所有快捷键列表,还支持收藏功 ...
- jvm调优思路及调优案例
jvm调优思路及调优案例 我们说jvm调优,其实就是不断测试调整jvm的运行参数,尽可能让对象都在新生代(Eden)里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时 ...
- IOT黑客入门篇之初探Badusb
什么是Badusb? BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...
- [排序算法] 双向冒泡排序 (C++)
前言 本文章是建立在冒泡排序的基础上写的,如还有对 冒泡排序 不了解的童鞋,可以看看这里哦~ 冒泡排序 C++ 双向冒泡排序原理 双向冒泡排序 的基本思想与 冒泡排序还是一样的.冒泡排序 每次将相邻的 ...
- 重学c#系列——委托和匿名函数[二十五]
前言 简单介绍一下什么是委托. 正文 以前也写过委托,这次算是重新归档,和新的补充吧. https://www.cnblogs.com/aoximin/p/13940125.html 有些人说委托是函 ...
- PGL图学习之项目实践(UniMP算法实现论文节点分类、新冠疫苗项目实战,助力疫情)[系列九]
原项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5100049?contributionType=1 1.图学习技术与应用 图是一个复杂 ...
- JavaScript中的Error错误对象与自定义错误类型
Error Error是JavaScript语言中的一个标准的内置对象,专门用于处理JS开发中的运行时错误. 当我们的JS代码在运行过程中发生错误的话,就会抛出Error对象,整个程序将会中断在错误发 ...
- 《MySQL必知必会》知识汇总二
六.用通配符进行过滤 本章介绍什么是通配符.如何使用通配符以及怎样使用LIKE操作符进行通配搜索 LIKE操作符 百分号(%)通配符 select prod_id,prod_name from pro ...