编写asp.net接口小结(痛苦的回忆)
来源:互联网 发布:java if else switch 编辑:程序博客网 时间:2024/06/05 10:37
由于上司需要,需要编写一个asp.net的小接口。该接口的作用是:接收json数据,经过后台处理(与数据库交互等),产生一个json数据返回过去。。。。同时这个要求这个接口只能被固定IP访问,拥有比较高的安全权限。
问题分解:asp.net处理json,与数据库交互,ip限制的设置
大概思路是,利用vs建立一个 网站 工程,然后新建一个aspx 对它的aspx.cs进行编辑即可
- 与数据库交互(最简单,也最让我蛋疼的一件事)
系统:win8
iis版本:8
IDE:vs2013
方法谷歌一下,最简单直接的方式就是利用System.Data.SqlClient进行数据库的连接,下面给出一个Demo//string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["Employment"].ToString();//这个参数是在web.config中进行设置的string connectString = "server=[服务器ip地址,端口号];uid=[用户名];pwd=[密码];database=[数据库名称];"SqlConnection sqlconn = new SqlConnection(connectString);sqlconn.Open();SqlCommand myCommand = sqlconn.CreateCommand();myCommand.CommandText = @"select [列名] from [表名] where [条件]";SqlDataReader myDataReader = myCommand.ExecuteReader();myDataReader.Read();//将reader的游标移向第一行,一开始是读不出来的string result = myDataReader[0].ToString();//或者在方括号中使用列名sqlconn.Close();
<connectionStrings> <add name="Employment" connectionString="同上" providerName="System.Data.SqlClient"/></connectionStrings>
2. 写完网页工程的时候如何调试?(第二蛋疼的事情)
这个方法是正确的
但是一开始我新建工程时用的平台是 .net4.0 就一直报错报错,搞得我都崩溃了 ,具体错误名称忘记了好像是一个什么内存出错什么的
后来用了.net3.0在处理json数据的时候不好用
再后来建立网站工程的时候用了.net3.5才算是正好第一个问题解决
3. 处理json数据最简单直接的方式肯定是在自己的windows的iis下进行部署和调试
具体步骤很好查,vsIDE下,右键工程--生成网站--发布网站,然后发布在文件系统中
我的在iis下部署该网站的方法是,进入mmc 添加iis管理单元,右键defaultwebsite 注意是“添加应用”,后面相应进行输入和选择,确定就可以。
但是发现发布简单,但是却无法访问。比如我的别名叫做gate,我访问 http://localhost/gate/gate.aspx,但是却貌似没有权限
经过多方查证,发现是IIS的有些功能没有打开:应用程序开发功能--ASP.NET。还有那个什么ISAPI也勾选上。忘记了
打开以后可以正常访问了
推荐一个工具json.net:http://james.newtonking.com/json首先是要接收json数据,由于发送的是纯json数据,所以直接把request的流拿到,然后解码出一个字符串,那个工具很好用,详细的没有研究,只求所需,反序列化如下
System.IO.Stream jsonStream = this.Context.Request.InputStream; byte[] jsonBytes = new byte[jsonStream.Length]; jsonStream.Read(jsonBytes, 0, jsonBytes.Length); string jsonString = System.Text.Encoding.UTF8.GetString(jsonBytes); this.reqClass = Newtonsoft.Json.JsonConvert.DeserializeObject<ReqClass>(jsonString);序列化如下,并且发送纯json数据如下
string resJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(this.resClass); this.Context.Response.Clear(); this.Context.Response.ContentType = "application/json"; this.Context.Response.Charset = "utf-8"; this.Context.Response.Write(resJsonString); this.Context.Response.End();
请注意:这两个类要和那些json数据一一对应,请查看那个网页
4. IP设置限制的方法
5. 感想在windows普通版的iis中,需要开启iis的ip安全功能,这样mmc的iis管理单元就能出现一个ip设限,很好操作
在windows server中,还没有试验,发一个网站,貌似被墙了,自行翻墙:http://blog.nami.idv.tw/?p=473
总体感觉就是蛋疼。
然后感觉ASP.NET真的太太太太沉重了,关联的组件太多太多了,用着好麻烦,一个功能都不知道去哪里找。
网上关于问题的解答也不是很多,是不是用asp.net的同学比较少。
如果是只想用一个连接去访问数据库,而不是为了查询多次而连接多次的话,可以在连接字符串上加上
MultipleActiveResultSets=true
- 编写asp.net接口小结(痛苦的回忆)
- 回忆真是一个痛苦的过程
- 学习.NET的痛苦
- 头痛欲裂时关于痛苦的丁点回忆
- 让人痛苦的并不是爱情,是回忆
- asp.net 接口的作用
- asp.net 接口的作用
- Asp.net中Frameset的使用小结 3(转)
- 初识ASP.NET---点滴的积累---ASP.NET学习小结
- asp.net客户端传参的小结
- Asp.net中Frameset的使用小结
- Asp.net中Frameset的使用小结
- Asp.net中Frameset的使用小结
- Asp.net中Frameset的使用小结
- BarTender与ASP.NET的集成小结
- asp.net frameset的使用小结
- Asp.net中Frameset的使用小结
- asp.net Session丢失的解决办法小结
- __FUNCTION__
- Java中获得一个Class对象的方法
- 旅行商问题、斯坦纳树问题小结
- 每天学点Linux--(curses.h的安装和基本使用)
- (串的存储结构4.5.1)POJ 1488 TEX Quotes(同一字符被交替替换+读取所有字符并对特定字符进行处理)
- 编写asp.net接口小结(痛苦的回忆)
- linux下MySQL基础
- C++库研究笔记——程序的本地化
- 半数集问题
- HDU 1527 取石子游戏 威佐夫博奕
- java提高篇(七)-----详解内部类
- 【leetcode】Candy
- String, StringBuffer, StringBuilder拼接字符串的执行效率比较
- 选择性求面积