1、在使用WebService时我们经常会考虑以下问题:怎么防止别人访问我的WebService?
在System.Net中提供了一个NetworkCredential,只有获得该凭证的用户才能访问相应的服务的权限。在NetworkCredential中,我们通过提供WebService发布所在的服务器名称,以及登录服务器并调用该WebService的用户名及密码(在IIS中配置)。[2014-06-12]
2、VCenter、ESXI关系
Vcenter一般指 VMware vCenter™ Server
VCenter是ESXI的管理端,可以通过VCenter把ESXI进行统一管理
VSphere client 虚拟机主机管理客户端,Vcenter是一个强大的管理端,它可以将多台ESXI主机作为集群,Vmotion等多个功能都必须使用Vcenter才能实现。
连接原理如下
VSphere---->Vcenter------>Esxi Server
上述图的意思就是,VSphere去连接Vcenter,通过Vcenter管理ESXI主机。
[2014-06-13]
3、SSL 与WCF 访问配置
<bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IAppService" > <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding>
<binding name="BasicHttpBinding_IEvidenceService">
<security mode="Transport" />
</binding>
</basicHttpBinding> </bindings>
2014-06-16
4、windows server 2008r2 HTTP 错误 404.17 - Not Found求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
问题是IIS安装有误,如下说明安装不完整
步骤:
5、using == try finally
为了在使用完毕时释放资源,我们经常要用using,using实质上就是try fiannaly的一个语法糖而已。
6、WCF 、Web API 、 WCF REST 和 Web Service 的区别
a、WebService:基于SOAP,仅支持Http协议,只可以在IIS中托管。
不是开源
支持数据类型: XML
b、WCF:基于SOAP,协议支持:TCP, HTTP, HTTPS, Named Pipes, MSMQ;基于RPC(远程过程调用(Remote Procedure [prə'siːdʒə]n. 程序,手续;步骤 Call) )机制
可以托管在IIS、window service、applicaion
不是开源
支持数据类型: XML
c、WCF REST:基于SOAP消息格式的WCF
支持数据类型: XML, JSON and ATOM
d、Web API:一个基于HTTP的ASP.NET
可以托管在IIS、applicaion (应用程序)
是开源平台
REST:称为具象状态传输 (Representational State Transfer, REST [,reprɪzen'teɪʃ(ə)n(ə)l] adj. 代表的;具象派的) 的体系结构风格。REST 是实现客户端/服务器体系结构风格的一种途径——REST 实际上是明确构建在客户端/服务器体系结构风格之上的。
WCF中的REST是一种POX(plain old xml),换句话说就是没有任何规定的xml,没有强行规定消息头,没有消息体。甚至因为没有规定,所以传输的格式用不用xml都不是大问题,Json也可以做为传输数据的封装格式。
[2014-06-23]
7、const VS readonly
- const只限于数字,字符串和字符,且以常量形式编译,值可以是基本表达式常量值。必须在定义后初始化。
- readonly常量是字段,只能在定义类的构造函数内修改(或者变量初始化器),派生类的构造函数不可以!
8、readonly和const的区别:(2014-07-14)
- readonly和const都是用来标识常量的。
- const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。
- const常量的值必定在编译时就已明确并且恒定的;而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。
- const常量必须在声明的同时对其进行赋值,并且确保该值在编译时可确定并恒定;而readonly常量则可以根据情况选择在声明的同时对其赋予一个编译时确定并恒定的值,或者将其值的初始化工作交给实例构造函数(instant constructor)完成。如:public readonly string m_Now = DateTime.Now.ToString();,m_Now会随着运行时实际情况变化而变化。
- const常量属于类级别(class level)而不是实例对象级别(instant object level),并且它不能跟static结合一起使用,该常量的值将由整个类的所有实例对象共同分享(详细论述参见后面的Remark区域)。
- readonly常量既可以是类级别也可以是实例对象级别的,这取决于它的声明以及初始化工作怎么实施。readonly可以与static结合使用,用于指定该常量属于类级别,并且把初始化工作交由静态构造函数(static constructor)完成(有关如何把readonly常量声明为类级别或实例对象级别的论述清参见后面的Remark区域) 。
- 能被const修饰声明为常量的类型必须是以下的基元类型(primitive type):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double,float, bool, decimal, string。
- object, 数组(Array)和结构(struct)不能被声明为const常量。
- 一般情况下,引用类型是不能被声明为const常量的,不过有一个例外:string。该引用类型const常量的值可以有两种情况,string或null。其实,string虽然是引用类型,但是.NET却对它特别处理,这种处理叫做字符串恒定性(immutable),使得string的值具有只读特性。有关字符串恒定性的内容,可以参考《Microsoft .NET框架程序设计(修订版)》。
9、Response.AddHeader “P3P”,”CP=CAO PSA OUR”一段解决IFRAME中SESSION无法保留的代码要理解原理.p3p是微软的隐私策略,通常情况下跨域iframe或者frameset默认采用的隐私策略为“中”,该级别的策略拒绝保留session。CAO PSA OUR则意味着你同意跨域保留session,但是也意味着你的网站不再安全。
[2014-09-11]
10、#if DEBUG
1、条件编译
MSDN:如果 C# 编译器遇到最后面跟有 #endif 指令的 #if 指令,则仅当指定的符号已定义时,它才会编译这两个指令之间的代码。
eg:#if DEBUG
Console.WriteLine("初始化" + e.Message) ;
#endif//DEBUG
它的作用就是当DEBUG时,在控制台输出异常信息,以便你马上知道出现什么错误,而当不是DEBUG时,那句就不会被编译。
2、断言Assert
作用就是确保你的程序按照预计的目标正常运行,并且能够帮助你迅速定位错误原因,就象c#里的断言方法System.Diagnostics.Debug.Assert的定义,判断一个条件是否成立,如果不成立的话就显示一条信息。
[2014-09-24]
11、CodeFirst
codefirst命令
1.Enable-Migrations
2.Add-Migration
3.Update-Database -Verbose
[2014-09-25]
12、Windows2008R2 服务器 IIS7 “Error: Service Unavailable HTTP Error 503. The service is unavailable”(2015-01-12)
解决办法:
a. 打开IIS管理中心,选择应用程序池(application pool)
b. 找到出现这个问题的网站对应的程序池(application pool),右键单击,选择高级(“advanced set”)
c. 单击标示(Identity box)旁边的按钮去修改它(一个新的窗口会弹出来).
d. 输入你的帐号以及新密码,然后确定.
13、FromUri
1. 默认简单参数都通过URL参数方式传递,例外:
1.1 如果路由中包含了Id参数,则id参数通过路由方式传递;
1.2 如果参数被标记为[FromBody],则可以该参数可以为简单参数,客户端通过POST方式传递:$.ajax(url, '=value'),或者$.ajax({url: url, data: {'': 'value'}});
2. 默认复杂参数(自定义实体类)都通过POST方式传递,例外:
2.1 如果参数值被标记为[FromUri], 则该参数可以为复杂参数;
3. 被标记为[FromBody]的参数只允许出现一次, 被标记为[FromUri]的参数可以出现多次,如果被标记为[FromUri]的参数是简单参数,该标记可以去掉。
14、网站静态化
CDN、模板
15、 新起一个线程的方法,可以使用Thread,BackgroundWorker ,ThreadPool,控件.BeginInvoke,委托.BeginInvoke,Timer。
创建多线程处理应用程序的最可靠方法是使用 BackgroundWorker 组件。但是,当你需要对线程进行精细控制的时候,就需要Thread。
[2015-05-15]
16、System.Web.Optimization找不到引用
方法如下:打开程序包管理控制台,在控制台中输入:Install-Package Microsoft.AspNet.Web.Optimization按回车。
17、能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。
删除 “C:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files”文件夹下的所有文件后问题解决。
18、Could not load file or assembly 'System.Web.Providers"
Install-Package Microsoft.AspNet.Providers
Install-Package Microsoft.AspNet.Providers.Core