最近的数据库课程要求将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->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实现数据库部署并调用的更多相关文章

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

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

  2. VS2010中使用Jquery调用Wcf服务读取数据库记录

    VS2010中使用Jquery调用Wcf服务读取数据库记录 开发环境:Window Servere 2008 +SQL SERVE 2008 R2+ IIS7 +VS2010+Jquery1.3.2 ...

  3. 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 ...

  4. Mysql主数据库+备份数据库部署教程

    转:http://www.111cn.net/database/mysql/76450.htm 本文我们来讲讲Mysql主备如何部署,这里说的主是指Mysql主数据库,备是从数据库,备可以是多个,也可 ...

  5. PHP、jQuery、AJAX和MySQL 数据库实例

    index.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

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

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

  7. 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践

    [点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...

  8. AJAX 与 MySQL

    AJAX 与 MySQL AJAX 可用来与数据库进行交互式通信. AJAX 数据库实例 下面的实例将演示网页如何通过 AJAX 从数据库读取信息: 实例   Select a person:   P ...

  9. 使用vs2010创建、发布、部署、调用 WebService

    原文地址:使用vs2010创建.发布.部署.调用 WebService作者:吴超 一 使用vs2010创建 WebService 1 打开VS2010,菜单    文件->新建->项目2 ...

  10. MySQL/Oracle数据库优化总结

    MySQL数据库优化的八种方式 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能 ...

随机推荐

  1. java常用注解校验参数

    validation中内置的constraints 注解 描述 @AssertFalse 所注解的元素必须是Boolean类型,且值为false @AssertTrue 所注解的元素必须是Boolea ...

  2. Rdt2.1 和 Rdt2.2的详细解释

    Rdt2.1 和 Rdt2.2的详细解释 目录 Rdt2.1 和 Rdt2.2的详细解释 这俩为啥会出现? 解决之道 Rdt 2.1 Rdt2.2 可靠数据传递中Rdt1.0, Rdt2.0, Rdt ...

  3. Typora设置代码块Mac风格三个圆点

    写作不停,美化不止! mac小圆点效果 原本代码块样式就挺....干净的,光秃秃的,太单调了: 是吧很丑,于是自己发挥改成了这样: 好吧还是太单调,也没好看到哪里去,于是隔了两天又重新改,DuangD ...

  4. python信息检索实验之向量空间模型与布尔检索

    import numpy as np import pandas as pd import math def bool_retrieval(string): if string.count('and' ...

  5. Optimize(优化实验)

    十大优化法则 1.更快(本课程重点!) 2.更省(存储空间.运行空间) 3.更美(UI 交互) 4.更正确(本课程重点!各种条件下) 5.更可靠 6.可移植 7.更强大(功能) 8.更方便(使用) 9 ...

  6. js函数组合

    纯函数和柯里化容易引起洋葱代码 函数组合可以让我们把细粒度的函数重新组合生成一个新的函数 函数组合并没有减少洋葱代码,只是封装了洋葱代码 函数组合执行顺序从右到左 满足结合律既可以把g和h组合 还可以 ...

  7. Python基础之模块:1、模块的导入和使用

    目录 一.模块 1.简介 2.模块的表现形式 二.模块的分类 1.自定义模块 2.内置模块 3.第三方模块 三.导入模块的句式 学前须知: 1.import句式 2.from...import...句 ...

  8. 当前数据库表空间达到32G,需要扩容

    表空间名:cwy_init 操作:给cwy_init增加数据文件,分配5G的空间,达到瓶颈自动增长1G,如下: alter tablespace cwy_init add datafile '/u01 ...

  9. c语言内存四区、数据存储范围和内存存储方向

    (1)代码区通常是共享只读(代码无法修改)的,即可以被其他的程序调用,例如运行两个qq,除了数据不一样,代码都是一样的, 每次运行qq,都会将代码和数据加载到内存中,除了数据,每次加载的代码都是一样的 ...

  10. Linux内存泄露案例分析和内存管理分享

    作者:李遵举 一.问题 近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长.接到内存报警的消 ...