开发过程钟遇到的问题

1.IIS部署,访问接口时报异常:“对某本地文件的访问被拒绝”。

原因:Windows 帐户权限过低。参考文档

解决方案:将网站的应用程序池标识修改为LocalSystem(具有高特权且有权访问网络资源的受信任帐户)

2.POST请求,postman回参正常,程序回参不一致。如下:

postman回参:

{

" result ":" success ",

" affairToken":"8a817a44723e937101723e9398830000"

}

程序回参:

{
    "code":-1,
    "data":null,
    "desc":null
}

原因:web后台服务端为了拦截网络爬虫,设置UA权限,必须以浏览器进行访问。当你使用爬虫脚本去访问该网站的时候,就会出现,访问失败、没有权限或者没有任何资源返回的结果等错误信息。参考博客

解决方案:设置User-Agent( 服务器通过这个请求头判断用户的软件的应用类型、操作系统、软件开发商以及版本号、浏览器内核信息等; 风控系统、反作弊系统、反爬虫系统等基本会采集这类信息做参考)

//.net framework支持UserAgent
webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";
//.net core 用以下方式代替
webRequest.Headers["User-Agent"] ="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";

3.WebAPI添加”包含操作的Web API 2 控制器(使用Entity Framework)“,搭建基架失败,错误信息:下载Entity Framework 6.1.3失败。

原因:NuGet的源地址失效导致下载EF包失败。
解决方案:更新程序包源。

(1)打开Visual Studio 2019-菜单->工具->选项,在选项对话框中的左侧目录中找到NuGet包管理器->程序包源。如下图:

增加的程序包源地址如下:https://api.nuget.org/v3/index.json

(2)安装对应版本的EF包,即Entity Framework 6.1.3,在添加控制器即可。

4.Visual Studio 2013 Nuget 检索超时

原因:Nuget官方网站已经不支持http访问, 只支持https,但是VS2013访问https默认使用的协议为Tls1.1,但是Nuget官方网站只支持Tls1.2,这是两边不匹配导致的问题。参考博客

在NuGet命令控制(PM)中运行以下命令以使用1.2版:

[Net.ServicePointManager]::SecurityProtocol=[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12

posted @ 2023-11-20 11:15  茜茜87  阅读(0)  评论(0编辑  收藏  举报