概述
由于上司需要,需要编写一个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接口小结(痛苦的回忆)的全部内容,希望文章能够帮你解决编写asp.net接口小结(痛苦的回忆)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复