我是靠谱客的博主 顺利心锁,最近开发中收集的这篇文章主要介绍编写asp.net接口小结(痛苦的回忆),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


由于上司需要,需要编写一个asp.net的小接口。该接口的作用是:接收json数据,经过后台处理(与数据库交互等),产生一个json数据返回过去。。。。同时这个要求这个接口只能被固定IP访问,拥有比较高的安全权限。


问题分解:asp.net处理json,与数据库交互,ip限制的设置
大概思路是,利用vs建立一个 网站 工程,然后新建一个aspx 对它的aspx.cs进行编辑即可

  1. 与数据库交互(最简单,也最让我蛋疼的一件事)


    系统: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>



这个方法是正确的
但是一开始我新建工程时用的平台是   .net4.0 就一直报错报错,搞得我都崩溃了 ,具体错误名称忘记了好像是一个什么内存出错什么的

后来用了.net3.0在处理json数据的时候不好用

再后来建立网站工程的时候用了.net3.5才算是正好

第一个问题解决

2. 写完网页工程的时候如何调试?(第二蛋疼的事情)

最简单直接的方式肯定是在自己的windows的iis下进行部署和调试

具体步骤很好查,vsIDE下,右键工程--生成网站--发布网站,然后发布在文件系统中

我的在iis下部署该网站的方法是,进入mmc 添加iis管理单元,右键defaultwebsite 注意是“添加应用”,后面相应进行输入和选择,确定就可以。

但是发现发布简单,但是却无法访问。比如我的别名叫做gate,我访问  http://localhost/gate/gate.aspx,但是却貌似没有权限

经过多方查证,发现是IIS的有些功能没有打开:应用程序开发功能--ASP.NET。还有那个什么ISAPI也勾选上。忘记了

打开以后可以正常访问了

3. 处理json数据
推荐一个工具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设置限制的方法

在windows普通版的iis中,需要开启iis的ip安全功能,这样mmc的iis管理单元就能出现一个ip设限,很好操作

在windows server中,还没有试验,发一个网站,貌似被墙了,自行翻墙:http://blog.nami.idv.tw/?p=473


5. 感想

总体感觉就是蛋疼。

然后感觉ASP.NET真的太太太太沉重了,关联的组件太多太多了,用着好麻烦,一个功能都不知道去哪里找。

网上关于问题的解答也不是很多,是不是用asp.net的同学比较少。


 如果是只想用一个连接去访问数据库,而不是为了查询多次而连接多次的话,可以在连接字符串上加上

MultipleActiveResultSets=true


最后

以上就是顺利心锁为你收集整理的编写asp.net接口小结(痛苦的回忆)的全部内容,希望文章能够帮你解决编写asp.net接口小结(痛苦的回忆)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部