一.远程到客户的电脑,出现黑屏现象
解决办法: CTRL+ALT+END
二.用VS2012打开VS2010创建的项目,有些解决方案打不开,报错
例如我所打开的项目中,Web项目加载不进来,显示不兼容状态:
产生此错误的原因,我想大概是:
VS2010创建该项目时使用的时MVC2,但是VS2012中只能创建MVC3以上的项目,.config和.csproj文件中的System.Web.Mvc版本都是2.0.
我的项目解决方法:
1.修改Web.config 文件ASP.NET MVC 的版本号,即:
System.Web.Mvc, Version=2.0.0.0 改成 System.Web.Mvc, Version=3.0.0.0
2.修改Web.config 文件bindingRedirect 元素的值,即:
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> 改为
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
3.编辑Web项目的 项目名.csproj 这个文件找到ProjectTypeGuids标记,
将{F85E285D-A4E0-4152-9332-AB1D724D3325}替换成
{E53F8FEA-EAE0-44A6-8774-FFD645390401}
注:安装VS2010时会要有SQLSERVER EXP版的功能选项,这个数据库版本与常规使用的MSSQLSERVER 不一样,所产生的实例名也会不一样。
详细流程参考:vs2013 打开vs2010 找不到此项目类型所基于的应用程序 MVC2 升级 MVC5 不能加载Web项目
三.ORACEL
64bit操作系统:要使用plsql就必须安装32bit客户端
不依赖与oracel客户端连接oracel的办法:
使用Oracle.ManagedDataAccess.Client.dll,可通过VS自带工具NUGET搜索下载该集即可。
使用该方法连接数据库的连接字符串:
Data Source= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = myserver)
(SERVICE_NAME = orcl) ) );User ID=myname;Password=mypassword
四.Oracel
程序访问数据库错误:找不到请求的.Net Framework Data Provide.可能没有安装。
解决办法:
下载 ODAC112040Xcopy_32bit.zip
1.解压复制到指令文件夹(如:C:\ODAC)
2.打开CMD,cd到该文件夹下,运行 install.bat odp.net4 E:\OracleClient ODAC (ODAC名称可以随意,E:\OracleClient 为安装的路径)
3.如需卸载cd到安装路径: uninstall.bat odp.net4 D:\OracleClient
4.注:这只是安装了我需要的文件,压缩包里包括了很多其他组件,可根据需求安装。
详解见:https://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html
五.Jquery
给未来元素绑定事件
对未来元素绑定,不能用bind。把元素绑在未来元素的父级上
1、可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegat了,1.9里就去掉live了。
2、不支持live之后什么代替live呢,是on,用法如下所示:
//放在$(function(){})里才有效
$(document).on("click", "#testDiv", function(){
//此处的$(this)指$( "#testDiv"),而非$(document)
});
六.Jquery
前端报错:
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'x' is therefore not allowed access.
解决方法2钟:
第一种:web.config里加入(如果在发布根目录没有这个文件可直接新建):
在web.config里的话加入以下代码:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".otf" mimeType="application/octet-stream" />
//如果还有其他被限定的文件在加即可
</staticContent>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="origin,x-requested-with,content-type" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>
第二种:在IIS对应的请求的站点下设置以下:
注:只要在web,config或者IIS里任意一方设置即可,参考链接:
IIS 如何设置多个Access-Control-Allow-Origin - 槑巭 - 博客园
https://www.douban.com/note/524034414/?type=like
七.开发环境下安装 .NET FRAMWORK 4.5.2:
八. C# 根据链接重命名下载文件
public void RenameDownLoadFie(string fileUrl, string fileName){
var filePath = fileUrl;
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(filePath);
request.Timeout = 60000;
System.Net.WebResponse response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
Byte[] buffer = new Byte[response.ContentLength];
int offset = 0, actuallyRead = 0;
do
{
actuallyRead = stream.Read(buffer, offset, buffer.Length - offset);
offset += actuallyRead;
}
while (actuallyRead > 0);
stream.Close();
stream.Dispose();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
}
}
九.写日志System.IO.File.AppendAllText报:“2019-10-21.log”正由另一进程使用,因此该进程无法访问此文件
public static void WriteLog(Exception ex, string action)
{
System.Threading.ReaderWriterLockSlim LogWriteLock = new System.Threading.ReaderWriterLockSlim();
try
{
LogWriteLock.EnterWriteLock();
// 在出现未处理的错误时运行的代码
StringBuilder _builder = new StringBuilder();
_builder.Append("\r\n------------- 异常信息 ---------------------------------------------------------------");
_builder.Append("\r\n发生时间:" + DateTime.Now.ToString());
_builder.Append("\r\n发生异常接口:" + action);
_builder.Append("\r\n异常信息:" + ex.Message);
_builder.Append("\r\n错误源:" + ex.Source);
_builder.Append("\r\n堆栈信息:" + ex.StackTrace);
_builder.Append("\r\n-----------------------------------------------------------------------------------------\r\n");
//日志物理路径
DateTime date = DateTime.Now;
string path = System.Web.HttpContext.Current.Server.MapPath("~/Log/LogisticeLog/");
string month = date.ToString("yyyy-MM");
if (!System.IO.Directory.Exists(path + month))
System.IO.Directory.CreateDirectory(path + month);
string currentDate = date.ToString("yyyy-MM-dd");
string savePath = path + month + "/" + currentDate + ".log";
System.IO.File.AppendAllText(savePath, _builder.ToString(), System.Text.Encoding.Default);
}
catch (Exception exs)
{
throw exs;
}
finally
{
//退出写入模式,释放资源占用
LogWriteLock.ExitWriteLock();
}
}
十.小程序接口,使请求保持在一个会话里,小程序前端请求这样写:
十一. C# webservice接口请求报错:基础连接已关闭:连接被意外关闭
如果用工具SOAP请求能通,并且发现请求的Expect 为100-continue,那么这样解决:
ServicePointManager.Expect100Continue = false;
或者
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.ServicePoint.Expect100Continue = false; // 取消100-continue
十二.DbContext 如何发现模型和数据库连接
官方介绍:连接字符串和模型-EF6 | Microsoft Docs
十三.MySql历史版本下载
MySQL :: Download MySQL Community Server (Archived Versions)