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可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能 ...
随机推荐
- RNN自学理解(一)
RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,利用了RNN的这种能力,使深度学习模型在解决语音识别.语言模型.机器翻译以及时序分析等NLP领域的问题时有所突破. 参考文献1 ...
- 4.RabbitMQ系列之发布/订阅模式
我们把一个消息转发给多个消费者,这种模式称之为发布-订阅模式 1.交换器(Exchange) RabbitMq消息模式的核心思想是:一个生产者并不会直接往一个队列中发送消息,事实上,生产者根本不知道它 ...
- vlunhub靶场之EMPIRE: LUPINONE
准备: 攻击机:虚拟机kali.本机win10. 靶机:EMPIRE: LUPINONE,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub ...
- JSTL组件的下载链接地址
配置JSTL和下载jar包 JSTL的安装包 下载地址:http://tomcat.apache.org/download-taglibs.cgi 在下载页面找到JSTL的规范和实现的两个jar包,如 ...
- 如何实现一个SQL解析器
作者:vivo 互联网搜索团队- Deng Jie 一.背景 随着技术的不断的发展,在大数据领域出现了越来越多的技术框架.而为了降低大数据的学习成本和难度,越来越多的大数据技术和应用开始支持SQL进 ...
- python关于Django搭建简单博客项目(教程)
由于csdn各种django blog博文都有或多或少的bug,所以我决定自己写一篇,先附上教程,详解在另一篇博文里,为了便于大家复制粘贴,本文代码尽量不使用图片. 源代码及解析文章请在我的githu ...
- Git新技能-stash操作
最近开发的工期非常紧迫,一直在忙各种杂七杂八的事情,负责人都还没有创建好测试环境, 所以代码也不能部署.可是项目经理催促开发进度又催得很急,新的开发需求必须在指定的时间内 完成,我们只得想办法去克服困 ...
- MySQL索引报错
今天在MySQL 5.7版本的数据库中导库InnoDB表字段长度时遇到了"ERROR 1071 (42000): Specified key was too long; max key le ...
- 前后端分离项目(十):实现"改"功能(前后端)
好家伙,本篇介绍如何实现"改" 我们先来看看效果吧 (这可不是假数据哟,这是真数据哟) (忘记录鼠标了,这里是点了一下刷新) First Of All 我们依旧先来理一下思路: ...
- maven的下载、安装、配置,idea中配置Maven
下载 下载链接: 点击下载地址 : 找到:对应版本的包下载 安装 下载后的压缩包解压出来,然后将解压后的包放到日常安装软件的位置即安装成功,当然取决于个人意愿,也可以不移动. 打开安装包后的目录结构简 ...