vs2019创建Webservice,发布,部署到IIS,并在前端调用
1.创建ASP.NET Web应用程序
2.添加web服务
3.添加成功后,写好自己想要的接口,并发布
4.在IIS上部署
右键“网站”,添加网站
浏览出现如下问题,解决方法为:双击“目录浏览”,并启用。
5.前端调用
(1)下载一个Vue.js文件,然后将其放到项目的根目录下:
(2)创建一个新的html文件,将以下代码粘贴进去:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app"></div>
<script>
new Vue({
el: '#app',
mounted() {
axios
.post('http://192.168.3.89:8090/WebService1.asmx/DoWork',{
value: 1
})
.then(res => {
console.log(res)
})
}
})
</script>
</body>
</html>
post请求里面第一个数据是服务地址,这里需要替换成你自己的服务地址,后面跟函数名DoWork,然后传输一个对象,写法与JSON格式类似,属性名后面跟属性值:
.post('http://192.168.3.89:8090/WebService1.asmx/DoWork',{
value: 1
})
(3)修改web服务中的内容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace WebApplication1
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
//[WebMethod]
//public string HelloWorld()
//{
// return "Hello World";
//}
[WebMethod(Description = "查询")]
public TestData DoWork(int value)
{
TestData myData = new TestData();
myData.Value = value;
return myData;
}
}
public class TestData
{
public int Value { get; set; }
}
}
(4)修改Web.config配置文件:
在配置文件中增加以下内容,解决跨域问题。
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
(5)重新发布web服务:具体参见3.
(6)浏览前端测试结果:
可以看到,现在浏览器的输出端口已经将返回的对象打印出来,可以看到返回对象中有{Value:1}说明前端调用成功了。