ASP.NET CORE开发 (三)
1. 在使用singleton时出现 Cannot resolve scoped service 'AlgoTag.Models.AlgoContext' from root provider.
https://www.cnblogs.com/liuzeqi/p/14132325.html
原因:一般情况下,生命周期较长的服务不应该依赖一个生命周期较短的服务,Scope的服务被Singleton的服务依赖/引用,那么这个Scope的服务也会随依赖它的Singleton服务变成Singleton的。
ref: service 有参构造: https://www.cnblogs.com/nickyX/p/14731137.html
2. 在IIS里如何访问Linux系统的共享文件夹
第一种方式: 在代码中实现 https://www.cjavapy.com/article/395/, git源码: https://github.com/zinkpad/SharpCifs 这种方式我没有尝试过。
第二种方式:模拟登录:https://blog.csdn.net/cxu123321/article/details/108592475 我采用了方案一,利用WindowsAPI :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices; namespace ConsoleApplication5 {
public class SharedTool : IDisposable {
// obtains user token
[DllImport("advapi32.dll", SetLastError = true)]
static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken); // closes open handes returned by LogonUser
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
extern static bool CloseHandle(IntPtr handle); [DllImport("Advapi32.DLL")]
static extern bool ImpersonateLoggedOnUser(IntPtr hToken); [DllImport("Advapi32.DLL")]
static extern bool RevertToSelf();
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域控中的需要用:Interactive = 2
private bool disposed; public SharedTool(string username, string password, string ip)
{
// initialize tokens
IntPtr pExistingTokenHandle = new IntPtr(0);
IntPtr pDuplicateTokenHandle = new IntPtr(0); try
{
// get handle to token
bool bImpersonated = LogonUser(username, ip, password,
LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle); if (bImpersonated)
{
if (!ImpersonateLoggedOnUser(pExistingTokenHandle))
{
int nErrorCode = Marshal.GetLastWin32Error();
throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode);
}
}
else
{
int nErrorCode = Marshal.GetLastWin32Error();
throw new Exception("LogonUser error;Code=" + nErrorCode);
}
}
finally
{
// close handle(s)
if (pExistingTokenHandle != IntPtr.Zero)
CloseHandle(pExistingTokenHandle);
if (pDuplicateTokenHandle != IntPtr.Zero)
CloseHandle(pDuplicateTokenHandle);
}
} protected virtual void Dispose(bool disposing) {
if (!disposed)
{
RevertToSelf();
disposed = true;
}
} public void Dispose()
{
Dispose(true);
}
}
}
3. 当使用ajax获取到后台返回image/jpeg 的图片时如何在页面上用jquery显示出来
function GetNextImage(i) {
$.ajax({
url: "/Home/GetNextImage/" + i,
type: "get",
xhrFields: {
responseType: 'blob'
},
success: function (data) {
var img = i == 0 ? $("#topimg") : $("#bottomimg");
var reader = new FileReader();
reader.onload = function (e) {
img.css("background-image", "url(" + e.target.result + ")");
}
reader.readAsDataURL(data);
},
error: function (e) {
alert(e);
}
});
需要设定responseType 为 blob。
如果是直接显示在页面上的话,那么可以把URL直接设给src 属性:
<img style="background-image: url('/Home/Image'); background-position:-324px 0px;" width="1800" height="720"/>
4. 下载下来的UTF-8编码格式的csv文件,直接用Excel打开是乱码的问题。
用notepad++ 打开没有问题, 用notepad++ 转换成UTF-8 BOM 保存后再用Excel打开也没有问题。所以在服务器上应该给文件内容加上BOM 头。
引用以下 答案: https://stackoverflow.com/questions/4414088/how-to-getbytes-in-c-sharp-with-utf8-encoding-with-bom
public IActionResult Download()
{
var data = Encoding.UTF8.GetBytes("some data");
var result = Encoding.UTF8.GetPreamble().Concat(data).ToArray();
return new FileContentResult(result, "text/plain;charset=utf-8") { FileDownloadName = "数据汇总.csv" };
}
ASP.NET CORE开发 (三)的更多相关文章
- ASP.Net Core开发(踩坑)指南
ASP.NET与ASP.NET Core很类似,但它们之间存在一些细微区别以及ASP.NET Core中新增特性的使用方法,在此之前也写过一篇简单的对比文章ASP.NET MVC应用迁移到ASP.NE ...
- 【视频】使用ASP.NET Core开发GraphQL服务
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL来自Facebook,它于2012年开始开发,2015年开源. GraphQL与编程语言无关,可以使用很 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- 基于ASP.Net Core开发的一套通用后台框架
基于ASP.Net Core开发一套通用后台框架 写在前面 这是本人在学习的过程中搭建学习的框架,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 知其然,知其所以然,并非重 ...
- [ASP.NET Core开发实战]开篇词
前言 本系列课程文章主要是学习官方文档,再输出自己学习心得,希望对你有所帮助. 课程大纲 本系列课程主要分为三个部分:基础篇.实战篇和部署篇. 希望通过本系列课程,能让大家初步掌握使用ASP.NET ...
- [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件
本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...
- ASP.NET Core 开发-中间件(Middleware)
ASP.NET Core开发,开发并使用中间件(Middleware). 中间件是被组装成一个应用程序管道来处理请求和响应的软件组件. 每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组 ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- ASP.NET Core开发-后台任务利器Hangfire使用
ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...
随机推荐
- word在指定页面设置页码
需求:比如,毕业论文前面几页要求罗马数字(摘要-目录)(这里设置页码格式即可完成),后面全是阿拉伯数字(这里比较难搞,以下方法是解决这里的) 方法: 1. 光标移到指定页面的第一个字符所在的位置前 2 ...
- Mixly呼吸灯及可调灯(物联网)
3挡可调灯 2秒呼吸灯
- 1,权限问题:无法创建目录"**": 权限不够":
1,权限问题:无法创建目录"**": 权限不够": 解决:在命令前加上 sudo 命令后,输入密码即可 原创建目录命令:mkdir [选项] DirName 解决权限问题 ...
- JS实现中英文混合文字友好截取功能
众所周知,一个汉字等于两个英文字母的长度.那么,从汉字或者英文字母中截取相同长度文字则显示的长度则不一样.此时用户体验会不好.那么怎么解决呢?往下看 <script> /** * JS实现 ...
- 主要的原型设计工具 :Axure RP
一. Axure RP简介: Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的带注释页面示意图.操作流程图.以及交互设计,并可自动生成用于演示的网页文件和规格文件,以提供演示与 ...
- Layui分页与springboots
service.java public List<Menu> listAllMenuPage(PageData pd) throws Exception{ List<Menu> ...
- java mysql截取所需数据
mysql截取数据: 例:截取门铺名称,门铺名称长度不确定 {"进店日期":"2022-09-01","电话":"1******* ...
- Typora 基本功能
Typora 基本功能 typora 下载官网:https://www.typora.io/ "安装到C盘" 基本使用 1.该文件后缀 .md2.六级标题 :ctrl+ ...
- Vue 加载显示源代码 , Vue 屏幕闪动
1.当网络较慢,网页还在加载 Vue.js ,而导致 Vue 来不及渲染,这时页面就会显示出 Vue 源代码.我们可以使用 v-cloak 指令来解决这一问题. <style> [v-cl ...
- 洛谷P1118数字三角形,
#include <bits/stdc++.h> using namespace std; int c[13][13];//杨辉三角 int b[13];//用于排除 int a[13]; ...