asp.net webapi使用教程

记录一下第一次使用asp.net 的经验

创建webapi项目步骤

1、选择ASP.NET Web应用程序
2、选择空项目==>勾选webapi选项,点击创建
3、Controller层是要写的接口层,提供给外部调用的
4、选择使用双核浏览器,也就是谷歌浏览器打开,有些浏览器打不开
5、F5启动程序,在地址栏输入http的访问路径,比如(https://localhost:44354/api/vericode/getcodes?filepath=E:\abc.jpg)
6、后台会返回结果给前端了

发布项目步骤

1、先部署一个IIS网站,先去控制面板-》程序-》启用或关闭windows功能-》
勾选Internet Information Services 下的web管理工具和万维网服务,全部勾选上
2、在windows搜索任务栏,输入IIS,即可打开IIS配置页面
3、选择网站-》右键-》添加网站-》取一个名称
4、选择物理路径,这就需要我们回到VS去发布了
5、回到VS,双击webpai项目中的Connect Services
6、左侧选择发布,按照要求发布到一个指定的文件夹,会生成app.publish文件夹(注意:如果重新编译了代码,则还需要重新点击一次发布)
7、回到第4步,选择app.publish文件夹作为物理路径
8、配置端口,写一个不常用的
9、点击确定

调用C++的dll

1、平台选择anycpu,理论上可以调用32位或者64位的dll,但是实操发现调用32位dll,会报错,可能是自身电脑是64位
2、和普通调用不一样,C++的dll如果放在debug目录下会报“找不到指定的模块”,必须放在C:\windows\sysytem32文件夹下,当然还有其他方式,这个只是调试程序会报错,IIS调用不会,把dll放在app.publish的bin目录下即可
3、asp.net Intptr.ToInt32()会报错,算术运算溢出,换一种方式,使用Marshal.AllocHGlobal()来创建地址,Marshal.Copy来拷贝数据,就不用Int类型了
4、webapi项目调用其他类库的时候,执行都一切正常,但是HttpGet后,程序就崩溃了,报错位置在UnsafeIISMethods.MgdIndicateCompletion问题,重新引用一下该类库,编译一下即可

03-01 15:14